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


Posted in Javascript onMarch 02, 2018

先上代码:

//...
<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属性并没有变化。也就是页面上的下拉框在非展开情况下的文字并没有改变,如下图:

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

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

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

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

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

Javascript 相关文章推荐
javascript forEach通用循环遍历方法
Oct 11 Javascript
JS对象与JSON格式数据相互转换
Feb 20 Javascript
JS获取URL中参数值(QueryString)的4种方法分享
Apr 12 Javascript
DOM操作一些常用的属性汇总
Mar 13 Javascript
AngularJS实现Input格式化的方法
Nov 07 Javascript
详解Vue.js组件可复用性的混合(mixin)方式和自定义指令
Sep 06 Javascript
父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法
Apr 25 Javascript
express 项目分层实践详解
Dec 10 Javascript
15分钟上手vue3.0(小结)
May 20 Javascript
浅谈Vue static 静态资源路径 和 style问题
Nov 07 Javascript
详解如何解决使用JSON.stringify时遇到的循环引用问题
Mar 23 Javascript
node中使用shell脚本的方法步骤
Mar 23 Javascript
完美解决iview 的select下拉框选项错位的问题
Mar 02 #Javascript
Vue.js做select下拉列表的实例(ul-li标签仿select标签)
Mar 02 #Javascript
vue element-ui table表格滚动加载方法
Mar 02 #Javascript
浅谈React组件之性能优化
Mar 02 #Javascript
vue实现裁切图片同时实现放大、缩小、旋转功能
Mar 02 #Javascript
vue slot 在子组件中显示父组件传递的模板
Mar 02 #Javascript
vue2.0 自定义 饼状图 (Echarts)组件的方法
Mar 02 #Javascript
You might like
新浪SAE云平台下使用codeigniter的数据库配置
2014/06/12 PHP
thinkPHP多表查询及分页功能实现方法示例
2017/07/03 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
2019/04/30 PHP
PHP+Redis链表解决高并发下商品超卖问题(实现原理及步骤)
2020/08/03 PHP
解决FireFox下[使用event很麻烦]的问题
2006/11/26 Javascript
JavaScript 读取元素的CSS信息的代码
2010/02/07 Javascript
javascript验证上传文件的类型限制必须为某些格式
2013/11/14 Javascript
实例说明为什么不要行内使用javascript
2014/04/18 Javascript
常用jQuery选择器总结
2014/07/11 Javascript
nodejs中简单实现Javascript Promise机制的实例
2014/12/06 NodeJs
jQuery实现高亮显示的方法
2015/03/10 Javascript
js实现微信分享代码
2020/10/11 Javascript
再谈JavaScript异步编程
2016/01/27 Javascript
原生js实现百叶窗效果及原理介绍
2016/04/12 Javascript
vuejs在解析时出现闪烁的原因及防止闪烁的方法
2016/09/19 Javascript
微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例
2016/11/22 Javascript
json数据处理及数据绑定
2017/01/25 Javascript
关于vuex的学习实践笔记
2017/04/05 Javascript
Extjs 中的 Treepanel 实现菜单级联选中效果及实例代码
2017/08/22 Javascript
基于three.js编写的一个项目类示例代码
2018/01/05 Javascript
js中Array对象的常用遍历方法详解
2019/01/17 Javascript
详解JavaScript 浮点数运算的精度问题
2019/07/23 Javascript
vue中如何实现后台管理系统的权限控制的方法步骤
2019/09/05 Javascript
Vue.js中使用Vuex实现组件数据共享案例
2020/07/31 Javascript
[04:40]DOTA2-DPC中国联赛1月26日Recap集锦
2021/03/11 DOTA
Python与shell的3种交互方式介绍
2015/04/11 Python
Python实现的计数排序算法示例
2017/11/29 Python
详解centos7+django+python3+mysql+阿里云部署项目全流程
2019/11/15 Python
时尚的CSS3进度条效果
2012/02/22 HTML / CSS
英国独特礼物想法和个性化礼物网站:notonthehighstreet.com
2018/04/16 全球购物
老公保证书范文
2014/04/29 职场文书
简单通用的简历自我评价
2014/09/21 职场文书
学风建设主题班会
2015/08/17 职场文书
redis实现共同好友的思路详解
2021/05/26 Redis
python字符串拼接.join()和拆分.split()详解
2021/11/23 Python
Spring Security使用单点登录的权限功能
2022/04/03 Java/Android