解决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 相关文章推荐
js写一个弹出层并锁屏效果实现代码
Dec 07 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(一)让静态人物动起来
Jan 23 Javascript
写JQuery插件的基本知识
Nov 25 Javascript
ie7+背景透明文字不透明超级简单的实现方法
Jan 17 Javascript
常用jQuery代码分享
Jul 14 Javascript
基于jquery实现省市联动特效
Dec 17 Javascript
javascript RegExp 使用说明
May 21 Javascript
jQuery实现公告新闻自动滚屏效果实例代码
Jul 14 Javascript
Angular2中如何使用ngx-translate进行国际化
May 21 Javascript
基于vue实现swipe轮播组件实例代码
May 24 Javascript
JS通过识别id、value值对checkbox设置选中状态
Feb 19 Javascript
从源码角度来回答keep-alive组件的缓存原理
Jan 18 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
两种php调用Java对象的方法
2006/10/09 PHP
linux实现php定时执行cron任务详解
2013/12/24 PHP
PHP实现在windows下配置sendmail并通过mail()函数发送邮件的方法
2017/06/20 PHP
简单的php购物车代码
2020/06/05 PHP
PHP rsa加密解密算法原理解析
2020/12/09 PHP
javascript事件模型代码
2007/07/01 Javascript
jQuery(1.6.3) 中css方法对浮动的实现缺陷分析
2011/09/09 Javascript
jquery插件制作教程 txtHover
2012/08/17 Javascript
jquery连缀语法如何实现
2012/11/29 Javascript
IE6中链接A的href为javascript协议时不在当前页面跳转
2014/06/05 Javascript
微信小程序 获取当前地理位置和经纬度实例代码
2016/12/05 Javascript
Three.js基础部分学习
2017/01/08 Javascript
jQuery实现的浮动层div浏览器居中显示效果
2017/02/03 Javascript
Javascript调试之console对象——你不知道的一些小技巧
2017/07/10 Javascript
浅谈基于Vue.js的移动组件库cube-ui
2017/12/20 Javascript
PHPStorm中如何对nodejs项目进行单元测试详解
2019/02/28 NodeJs
vue项目打包后上传至GitHub并实现github-pages的预览
2019/05/06 Javascript
详解如何提升JSON.stringify()的性能
2019/06/12 Javascript
Javascript模拟实现new原理解析
2020/03/03 Javascript
vue实现路由懒加载的3种方法示例
2020/09/01 Javascript
vantUI 获得piker选中值的自定义ID操作
2020/11/04 Javascript
跟老齐学Python之Import 模块
2014/10/13 Python
django将图片上传数据库后在前端显式的方法
2018/05/25 Python
Python实现矩阵相乘的三种方法小结
2018/07/26 Python
Python TestCase中的断言方法介绍
2019/05/02 Python
Python魔法方法 容器部方法详解
2020/01/02 Python
Notino希腊:购买香水和美容产品
2019/07/25 全球购物
Overload和Override的区别
2012/09/02 面试题
葡萄牙语专业个人求职信
2013/12/10 职场文书
外贸采购员岗位职责
2014/03/08 职场文书
乳制品整治工作方案
2014/05/29 职场文书
通信工程专业求职信
2014/06/04 职场文书
自愿离婚协议书范本
2014/09/13 职场文书
公司法定代表人授权委托书
2014/09/29 职场文书
Nginx配置80端口访问8080及项目名地址方法解析
2021/03/31 Servers
Win11如何查看显卡型号 Win11查看显卡型号的方法
2022/08/14 数码科技