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

 更新时间:2018年03月02日 15:33:38   作者:ChengYz_  
下面小编就为大家分享一篇解决vue 更改计算属性后select选中值不更改的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

先上代码:

//...
<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 element 中的table动态渲染实现(动态表头)

    vue element 中的table动态渲染实现(动态表头)

    这篇文章主要介绍了vue element 中的table动态渲染实现(动态表头),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • el-form-item中表单项label和表单项内容换行实现方法

    el-form-item中表单项label和表单项内容换行实现方法

    这篇文章主要给大家介绍了el-form-item中表单项label和表单项内容换行实现的相关资料,每个表单el-form由多个表单域el-form-item组成,需要的朋友可以参考下
    2023-09-09
  • VUE v-bind 数据绑定的示例详解

    VUE v-bind 数据绑定的示例详解

    这篇文章主要介绍了VUE v-bind 数据绑定,简单点来说就是对 HTML 中的元素,我们可以使用 v-bind 来进行绑定和动态的数据输出,本文结合示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • element使用自定义icon图标的两种解决方式

    element使用自定义icon图标的两种解决方式

    因为安装原型图设计实现页面,在element自带的图标库好像没有,所以按钮的图标icon需要自定义,下面这篇文章主要给大家介绍了关于element使用自定义icon图标的两种解决方式,需要的朋友可以参考下
    2022-07-07
  • vue2.0 路由模式mode=

    vue2.0 路由模式mode="history"的作用

    这篇文章主要介绍了vue2.0 路由模式mode="history"的作用,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2018-10-10
  • nuxt3中server routes的使用详解

    nuxt3中server routes的使用详解

    本文主要介绍了nuxt3中server routes的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • 实例讲解Vue.js中router传参

    实例讲解Vue.js中router传参

    本篇文章通过实例给大家分析了Vue.js中router传参的相关知识点,对此有兴趣的朋友参考学习下。
    2018-04-04
  • vue多次打包后出现浏览器缓存的问题及解决

    vue多次打包后出现浏览器缓存的问题及解决

    这篇文章主要介绍了vue多次打包后出现浏览器缓存的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • Vue 中 template 有且只能一个 root的原因解析(源码分析)

    Vue 中 template 有且只能一个 root的原因解析(源码分析)

    这篇文章主要介绍了Vue 中 template 有且只能一个 root的原因解析,本文从源码角度分析给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • 详解Vue中的自定义指令

    详解Vue中的自定义指令

    这篇文章主要介绍了Vue中的自定义指令的相关资料,帮助大家更好的理解和学习vue框架,感兴趣的朋友可以了解下
    2020-12-12

最新评论