最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

解决vue 更改计算属性后select选中值不更改的问题

来源:动视网 责编:小采 时间:2020-11-27 22:18:06
文档

解决vue 更改计算属性后select选中值不更改的问题

解决vue 更改计算属性后select选中值不更改的问题:先上代码: //... <body> <div id=qwe> <select v-model=selected> <option v-for=item in da :value=item.value>{{item.value}}</option> </select&g
推荐度:
导读解决vue 更改计算属性后select选中值不更改的问题:先上代码: //... <body> <div id=qwe> <select v-model=selected> <option v-for=item in da :value=item.value>{{item.value}}</option> </select&g


先上代码:

//...
<body>
 <div id="qwe">
 <select v-model="selected">
 <option v-for="item in da" :value="item.value">{{item.value}}</option>
 </select>
 <span>{{selected}}</span>
 </div>
 <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指令绑定数据生成option,但今天学习写的时候突然发现一个问题,即将计算属性da绑定到v-for指令上,然后再替换源数据options,结果da计算属性正确,而selected属性并没有变化。也就是页面上的下拉框在非展开情况下的文字并没有改变,如下图:

这里可以看到下拉框的option已经更新,然而selected属性并没有随之同步更新,因为它缓存了上次选择的值。

这里如此设计不知是否合理,因为我用这种用法用的比较少。

但有问题就要解决。在computed中的计算属性中增加selected='',每次更新依赖则重置selected属性。

以上这篇解决vue 更改计算属性后select选中值不更改的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

文档

解决vue 更改计算属性后select选中值不更改的问题

解决vue 更改计算属性后select选中值不更改的问题:先上代码: //... <body> <div id=qwe> <select v-model=selected> <option v-for=item in da :value=item.value>{{item.value}}</option> </select&g
推荐度:
标签: 处理 VUE 计算属性
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top