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


本文摘自PHP中文网,作者php中世界最好的语言,侵删。

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

先上代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

//...

<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的选中值的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

html5新增了哪些标签和属性?新增了标签和属性(总结)

jquery怎么设置属性和样式

如何使用html的title属性

css中设置英文单词之间间距的属性是什么

css中的图片翻转属性是什么

在html中,如何用style添加属性

怎样使用a标签的href属性与onclick事件

css盒模型有哪些属性

html中划分框窗有哪些常用属性

怎么禁止vue计算属性自带的缓存功能

更多相关阅读请进入《但是》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...