ホームページ > 記事 > ウェブフロントエンド > vue に計算されたプロパティを変更させるが、select の選択された値は変更させない方法
今回は、vue で計算された プロパティ を変更するが、select の選択された値は変更しない方法を説明します。以下に実際のケースを見てみましょう。
コードから始めましょう: //...
<body>
<p id="qwe">
<select v-model="selected">
<option v-for="item in da" :value="item.value">{{item.value}}</option>
</select>
<span>{{selected}}</span>
</p>
<script>
var dt = [{
value: '111',
label: 'aaa'
}, {
value: '222',
label: 'bbb'
}, {
value: '333',
label: 'ccc'
}, {
value: '444',
label: 'ddd'
}, {
value: '555',
label: 'fff'
}];
var vm = new Vue({
el: '#qwe',
data: {
options: [{
value: '选项1',
label: '黄金糕'
}, {
value: '选项2',
label: '双皮奶'
}, {
value: '选项3',
label: '蚵仔煎'
}, {
value: '选项4',
label: '龙须面'
}, {
value: '选项5',
label: '北京烤鸭'
}],
selected: ''
},
computed: {
da: function () {
var _self = this;
return _self.options.filter(function (item) {
return +item.value.split('')[2] > 2;
});
}
}
})
</script>
</body>
</html>
上記のコードは、vue の v-for 命令を使用してデータをバインドし、オプションを生成しますが、今日書き方を学習していたときに、突然問題を発見しました。 for 命令で計算された属性 da を v- に変更し、ソース データ オプションを置き換えます。その結果、da の計算された属性は正しいですが、選択された属性は変更されません。つまり、以下に示すように、ページ上のドロップダウン ボックスのテキストは展開されていないときは変更されていません:
ここでは、ドロップダウン ボックスのオプションが
になっていることがわかります。更新しましたが、最後に選択された値がキャッシュされているため、選択された属性は同時に更新されていません。 このように使用することはめったにないので、ここのデザインが合理的であるかどうかはわかりません。
しかし、問題がある場合は解決する必要があります。 selected=''を computed の計算された属性に追加し、依存関係が更新されるたびに selected 属性をリセットします。 この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。
推奨読書:jQuery が左右のスライディング トグルを実装する方法
v-for 使用時に赤と警告が使用される問題を解決する Vue
以上がvue に計算されたプロパティを変更させるが、select の選択された値は変更させない方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。