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 相关文章推荐
关于jquery.validate1.9.0前台验证的使用介绍
Apr 26 Javascript
基于js disabled=&quot;false&quot;不起作用的解决办法
Jun 26 Javascript
js里取容器大小、定位、距离等属性搜集整理
Aug 19 Javascript
JS实现兼容性好,带缓冲的动感网页右键菜单效果
Sep 18 Javascript
JS+HTML5 FileReader实现文件上传前本地预览功能
Mar 27 Javascript
基于JQuery的Ajax方法使用详解
Aug 16 jQuery
Vue-cli创建项目从单页面到多页面的方法
Sep 20 Javascript
深入解析koa之中间件流程控制
Jun 17 Javascript
解决Vue.js应用回退或刷新界面时提示用户保存修改问题
Nov 24 Javascript
JS面向对象编程实现的拖拽功能案例详解
Mar 03 Javascript
小程序选项卡以及swiper套用(跨页面)
Jun 19 Javascript
分享15个Webpack实用的插件!!!
Mar 31 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
手把手教你使用DedeCms的采集的图文教程
2007/03/11 PHP
PHP压缩html网页代码(清除空格,换行符,制表符,注释标记)
2012/04/02 PHP
使用XHProf查找PHP性能瓶颈的实例
2017/12/13 PHP
浅谈php://filter的妙用
2019/03/05 PHP
php 利用socket发送GET,POST请求的实例代码
2020/07/04 PHP
效率高的Javscript字符串替换函数的benchmark
2008/08/02 Javascript
jQuery Tools tab使用介绍
2012/07/14 Javascript
Knockoutjs的环境搭建教程
2012/11/26 Javascript
AngularJS入门教程(二):AngularJS模板
2014/12/06 Javascript
JavaScript分秒倒计时器实现方法
2015/02/02 Javascript
JavaScript实现将数组中所有元素连接成一个字符串的方法
2015/04/06 Javascript
JavaScript中的replace()方法使用详解
2015/06/06 Javascript
JS+CSS实现的日本门户网站经典选项卡导航效果
2015/09/27 Javascript
JS实时弹出新消息提示框并有提示音响起的实现代码
2016/04/20 Javascript
JavaScript中对象的不同创建方法
2016/08/12 Javascript
Javascript点击按钮随机改变数字与其颜色
2016/09/01 Javascript
对Angular.js Controller如何进行单元测试
2016/10/25 Javascript
ES6学习笔记之Set和Map数据结构详解
2017/04/07 Javascript
Bootstrap Table使用整理(二)
2017/06/09 Javascript
Angular2实现组件交互的方法分析
2017/12/19 Javascript
详解使用uni-app开发微信小程序之登录模块
2019/05/09 Javascript
JavaScript实现留言板案例
2020/03/17 Javascript
JavaScript编码小技巧分享
2020/09/17 Javascript
JavaScript实现鼠标经过表格某行时此行变色
2020/11/20 Javascript
selenium+python自动化测试之环境搭建
2019/01/23 Python
pytorch 图像预处理之减去均值,除以方差的实例
2020/01/02 Python
python 解决mysql where in 对列表(list,,array)问题
2020/06/06 Python
Python读写Excel表格的方法
2021/03/02 Python
CSS3实现的文本3D效果附图
2014/09/03 HTML / CSS
Baracuta官方网站:Harrington夹克,G9,G4,G10等
2018/03/06 全球购物
Tahari ASL官方网站:高级设计师女装
2021/03/15 全球购物
劳动之星获奖感言
2014/02/01 职场文书
《赵州桥》教学反思
2014/02/17 职场文书
2014年小学美术工作总结
2014/12/20 职场文书
Nginx stream 配置代理(Nginx TCP/UDP 负载均衡)
2021/11/17 Servers
angular异步验证器防抖实例详解
2022/03/31 Javascript