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使Div居中并随网页大小改变而改变
Jun 24 Javascript
JavaScript作用域与作用域链深入解析
Dec 06 Javascript
JQEasy-ui在IE9以下版本中二次加载的问题分析及处理方法
Jun 23 Javascript
jquery简单实现图片切换效果的方法
May 12 Javascript
js实现跨域的4种实用方法原理分析
Oct 29 Javascript
JavaScript实现设计模式中的单例模式的一些技巧总结
May 17 Javascript
JavaScript浏览器对象之一Window对象详解
Jun 03 Javascript
Jquery组件easyUi实现表单验证示例
Aug 23 Javascript
JavaScript获取tr td 的三种方式全面总结(推荐)
Aug 15 Javascript
laydate日历控件使用方法详解
Nov 20 Javascript
微信小程序实现星级评价
Nov 20 Javascript
JavaScript文档对象模型DOM
Nov 20 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中通过ADO调用Asscess数据库和COM程序
2006/10/09 PHP
用php实现让页面只能被百度gogole蜘蛛访问的方法
2009/12/29 PHP
PHP中Date()时间日期函数的使用方法小结
2011/04/20 PHP
php 微信公众平台开发模式实现多客服的实例代码
2016/11/07 PHP
php 调用ffmpeg获取视频信息的简单实现
2017/04/03 PHP
Nginx下ThinkPHP5的配置方法详解
2017/08/01 PHP
Laravel 修改默认日志文件名称和位置的例子
2019/10/17 PHP
Prototype1.6 JS 官方下载地址
2007/11/30 Javascript
使用JavaScript switch case 另类写法
2010/03/14 Javascript
js读取本地excel文档数据的代码
2010/11/11 Javascript
TreeView 用法(有代码)(asp.net)
2011/07/15 Javascript
jQuery中操控hidden、disable等无值属性的方法
2014/01/06 Javascript
jQuery简单实现隐藏以及显示特效
2015/02/26 Javascript
jQuery日程管理插件fullcalendar使用详解
2017/01/07 Javascript
Ajax基础知识详解
2017/02/17 Javascript
超级简易的JS计算器实例讲解(实现加减乘除)
2017/08/08 Javascript
React Native悬浮按钮组件的示例代码
2018/04/05 Javascript
详解js动态获取浏览器或页面等容器的宽高
2019/03/13 Javascript
[04:07]显微镜下的DOTA2第八期——英雄复活动作
2014/06/24 DOTA
[00:43]TI7不朽珍藏III——幽鬼不朽展示
2017/07/15 DOTA
Python Trie树实现字典排序
2014/03/28 Python
两个使用Python脚本操作文件的小示例分享
2015/08/27 Python
python类:class创建、数据方法属性及访问控制详解
2016/07/25 Python
Python之re操作方法(详解)
2017/06/14 Python
python获取array中指定元素的示例
2019/11/26 Python
python base64库给用户名或密码加密的流程
2020/01/02 Python
Python基于read(size)方法读取超大文件
2020/03/12 Python
python实现FTP文件传输的方法(服务器端和客户端)
2020/03/20 Python
Django正则URL匹配实现流程解析
2020/11/13 Python
用OpenCV进行年龄和性别检测的实现示例
2021/01/29 Python
瑞典手机壳品牌:Richmond & Finch
2018/04/28 全球购物
Gap英国官网:Gap UK
2018/07/18 全球购物
迪卡侬中国官网:Decathlon中国
2020/08/10 全球购物
大学迎新标语
2014/06/26 职场文书
竞选纪律委员演讲稿
2014/09/13 职场文书
MySQL数据库之内置函数和自定义函数 function
2022/06/16 MySQL