当前位置:Gxlcms > html代码 > 怎样让vue更改计算属性但是不更改select的选中值

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

时间:2021-07-01 10:21:17 帮助过:21人阅读

这次给大家带来怎样让vue更改计算属性但是不更改select的选中值,vue更改计算属性但是不更改select选中值的注意事项有哪些,下面就是实战案例,一起来看一下。

先上代码:

  1. //...
  2. <body>
  3. <p id="qwe">
  4. <select v-model="selected">
  5. <option v-for="item in da" :value="item.value">{{item.value}}</option>
  6. </select>
  7. <span>{{selected}}</span>
  8. </p>
  9. <script>
  10. var dt = [{
  11. value: '111',
  12. label: 'aaa'
  13. }, {
  14. value: '222',
  15. label: 'bbb'
  16. }, {
  17. value: '333',
  18. label: 'ccc'
  19. }, {
  20. value: '444',
  21. label: 'ddd'
  22. }, {
  23. value: '555',
  24. label: 'fff'
  25. }];
  26. var vm = new Vue({
  27. el: '#qwe',
  28. data: {
  29. options: [{
  30. value: '选项1',
  31. label: '黄金糕'
  32. }, {
  33. value: '选项2',
  34. label: '双皮奶'
  35. }, {
  36. value: '选项3',
  37. label: '蚵仔煎'
  38. }, {
  39. value: '选项4',
  40. label: '龙须面'
  41. }, {
  42. value: '选项5',
  43. label: '北京烤鸭'
  44. }],
  45. selected: ''
  46. },
  47. computed: {
  48. da: function () {
  49. var _self = this;
  50. return _self.options.filter(function (item) {
  51. return +item.value.split('')[2] > 2;
  52. });
  53. }
  54. }
  55. })
  56. </script>
  57. </body>
  58. </html>

上面的代码就是采用vue的v-for指令绑定数据生成option,但今天学习写的时候突然发现一个问题,即将计算属性da绑定到v-for指令上,然后再替换源数据options,结果da计算属性正确,而selected属性并没有变化。也就是页面上的下拉框在非展开情况下的文字并没有改变,如下图:

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

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

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

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

推荐阅读:

jQuery怎么实现左右滑动的toggle

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

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

人气教程排行