怎样让vue更改计算属性但是不更改select的选中值

互联网 18-3-27
这次给大家带来怎样让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指令绑定数据生成option,但今天学习写的时候突然发现一个问题,即将计算属性da绑定到v-for指令上,然后再替换源数据options,结果da计算属性正确,而selected属性并没有变化。也就是页面上的下拉框在非展开情况下的文字并没有改变,如下图:

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

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

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

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

jQuery怎么实现左右滑动的toggle

vue中解决v-for使用报红并出现警告

以上就是怎样让vue更改计算属性但是不更改select的选中值的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 计算
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:怎么禁止vue计算属性自带的缓存功能

相关资讯