vue中$set的使用(结合在实际应用中遇到的坑)


Posted in Javascript onJuly 10, 2018

最近在开发过程中遇到一个问题。在节点上面写点击事件时,点击事件不执行。代码如下:

<!-- 操作 -->
    <el-table-column label="操作">
     <template slot-scope="scope">
      <span class="poi icon-hover f16 mr20" @click='scope.row.edit=!scope.row.edit'>
       <svg-icon :icon-class="scope.row.edit?'icon_edit_outline':'icon_save'"></svg-icon>
      </span>
      <span class="poi icon-hover f16">
       <svg-icon icon-class="icon_delete"></svg-icon>
      </span>
     </template>
    </el-table-column>
    <!-- 操作 -->

这里面的click事件一直不执行,一开始以为是点击事件没写对一直在找原因,后面突然想到会不会是数据不同步的原因的,因为edit字段是自己添加进去的字段,如下:

export default {
 name: 'strategic',
 data() {
  return {
   tableData: [{
    'pp_id': 4,
    'brand_name': '1414', 
    'project_name': '得意', 
    'description': '的u会回来会', 
    'publish_time': '2018-07-23',
    'is_used': 0 
   }]
  }
 },
 components: { },
 computed: {
 },
 created() {
  this.initTableData()
 },
 methods: {
  initTableData() {
   this.tableData.forEach(element => {
    element.edit = false
   })
  }
 }
}

之后我直接在数据里面加上edit字段,发现是能够同步数据的,代码如下:

data() {
  return {
   tableData: [{
    'pp_id': 4,
    'brand_name': '1414',
    'project_name': '1414',
    'description': '7588888888',
    'publish_time': '2018-07-23',
    'is_used': 0,
    'edit': false
   }]
  }
 }

原来是在我们使用vue进行开发,当生成vue示例后,再次给数据赋值时,有时候并不能自动更新到数据上去,这时候我们就要通过$set来解决这个问题,解决代码如下:

initTableData() {
 this.tableData.forEach(element => {
   this.$set(element, 'edit', false)
 })
}

至此就解决啦。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript各浏览器中option元素的表现差异
Apr 07 Javascript
jQuery实现类似滑动门切换效果的层切换
Sep 23 Javascript
一不小心就做错的JS闭包面试题
Nov 25 Javascript
js实现的彩色方块飞舞奇幻效果
Jan 27 Javascript
bootstrapValidator.min.js表单验证插件
Feb 09 Javascript
angular中的http拦截器Interceptors的实现
Feb 21 Javascript
js实现下拉菜单效果
Mar 01 Javascript
JavaScript使用readAsDataURL读取图像文件
May 10 Javascript
详解vue mint-ui源码解析之loadmore组件
Oct 11 Javascript
vue和react等项目中更简单的实现展开收起更多等效果示例
Feb 22 Javascript
javascript数组去重方法总结(推荐)
Mar 20 Javascript
解决layui数据表格Date日期格式的回显Object的问题
Sep 19 Javascript
JavaScript中 ES6变量的结构赋值
Jul 10 #Javascript
vue超时计算的组件实例代码
Jul 09 #Javascript
微信小程序自定义底部弹出框
Nov 16 #Javascript
详解vue中组件参数
Jul 09 #Javascript
微信小程序实现手指触摸画板
Jul 09 #Javascript
微信小程序canvas实现刮刮乐效果
Jul 09 #Javascript
vue用Object.defineProperty手写一个简单的双向绑定的示例
Jul 09 #Javascript
You might like
php fputcsv命令 写csv文件遇到的小问题(多维数组连接符)
2011/05/24 PHP
如何使用Gitblog和Markdown建自己的博客
2015/07/31 PHP
php实现推荐功能的简单实例
2019/09/29 PHP
Laravel第三方包报class not found的解决方法
2019/10/13 PHP
jquery异步循环获取功能实现代码
2010/09/19 Javascript
说明你的Javascript技术很烂的五个原因
2011/04/26 Javascript
Js参数值中含有单引号或双引号问题的解决方法
2013/11/06 Javascript
Extjs4中Form的使用之本地hiddenfield
2013/11/26 Javascript
JavaScript学习笔记之内置对象
2015/01/22 Javascript
jquery使用hide方法隐藏指定id的元素
2015/03/30 Javascript
浅析Javascript ES6新增值比较函数Object.is
2016/08/24 Javascript
js简单正则验证汉字英文及下划线的方法
2016/11/28 Javascript
jquery设置css样式的多种方法(总结)
2017/02/21 Javascript
NodeJs中express框架的send()方法简介
2017/06/20 NodeJs
Vue.js实现的表格增加删除demo示例
2018/05/22 Javascript
vue使用监听实现全选反选功能
2018/07/06 Javascript
微信小程序实现文字跑马灯
2020/05/26 Javascript
Vue中ref和$refs的介绍以及使用方法示例
2021/01/11 Vue.js
[01:45]典藏宝瓶2+祈求者身心——这就是DOTA2TI9总奖金突破3000万美元的秘密
2019/07/21 DOTA
Python中使用pprint函数进行格式化输出的教程
2015/04/07 Python
基于Python实现通过微信搜索功能查看谁把你删除了
2016/01/27 Python
浅析Python与Mongodb数据库之间的操作方法
2019/07/01 Python
安装Pycharm2019以及配置anconda教程的方法步骤
2019/11/11 Python
python读取ini配置文件过程示范
2019/12/23 Python
为什么说python更适合树莓派编程
2020/07/20 Python
快速创建python 虚拟环境
2020/11/28 Python
html5 css3实例教程 一款html5和css3实现的小机器人走路动画
2014/10/20 HTML / CSS
华纳兄弟工作室的官方授权商店:WB Shop
2018/11/30 全球购物
如何掌握自荐信格式呢
2013/11/19 职场文书
残疾人创业典型事迹
2014/02/01 职场文书
总经理岗位职责范本
2014/02/02 职场文书
专题组织生活会方案
2014/06/15 职场文书
《山中访友》教学反思
2016/02/24 职场文书
机关单位2016年法制宣传日活动总结
2016/04/01 职场文书
详解前端任务构建利器Gulp.js使用指南
2021/04/30 Javascript
一篇文章带你掌握SQLite3基本用法
2022/06/14 数据库