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静态的动态
Sep 18 Javascript
javascript操作html控件实例(javascript添加html)
Dec 02 Javascript
图片翻转效果具体实现代码
Jan 09 Javascript
一个简单的JavaScript Map实例(分享)
Aug 03 Javascript
纯js实现悬浮按钮组件
Dec 17 Javascript
jQuery给表格添加分页效果
Mar 02 Javascript
微信小程序 在线支付功能的实现
Mar 14 Javascript
js弹性势能动画之抛物线运动实例详解
Jul 27 Javascript
web前端vue filter 过滤器
Jan 12 Javascript
浅谈从React渲染流程分析Diff算法
Sep 08 Javascript
详解ES7 Decorator 入门解析
Feb 18 Javascript
浅谈Vue的computed计算属性
Mar 21 Vue.js
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
虫族 Zerg 历史背景
2020/03/14 星际争霸
队列在编程中的实际应用(php)
2010/09/04 PHP
PHP Session机制简介及用法
2014/08/19 PHP
PHP实现批量修改文件后缀名的方法
2015/07/30 PHP
PHP添加图片水印、压缩、剪切的封装类
2015/08/17 PHP
Yii2主题(Theme)用法详解
2016/07/23 PHP
PHP排序算法之堆排序(Heap Sort)实例详解
2018/04/21 PHP
Laravel框架路由管理简单示例
2019/05/07 PHP
javascript简易缓动插件(源码打包)
2012/02/16 Javascript
js如何实现设计模式中的模板方法
2013/07/23 Javascript
JS实现网页标题随机显示名人名言的方法
2015/11/03 Javascript
javascript事件委托的用法及其好处简析
2016/04/04 Javascript
Highcharts学习之数据列
2016/08/03 Javascript
表格展示利器 Bootstrap Table实例代码
2017/09/06 Javascript
vue addRoutes路由动态加载操作
2020/08/04 Javascript
[01:10:48]完美世界DOTA2联赛PWL S2 GXR vs PXG 第一场 11.18
2020/11/18 DOTA
[54:43]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第一场 2月22日
2021/03/11 DOTA
Python中浅拷贝copy与深拷贝deepcopy的简单理解
2018/10/26 Python
python得到一个excel的全部sheet标签值方法
2018/12/10 Python
利用Python脚本批量生成SQL语句
2020/03/04 Python
浅析Django 接收所有文件,前端展示文件(包括视频,文件,图片)ajax请求
2020/03/09 Python
踩坑:pytorch中eval模式下结果远差于train模式介绍
2020/06/23 Python
Python:__eq__和__str__函数的使用示例
2020/09/26 Python
CSS3标注引用的出处和来源的方法
2020/02/25 HTML / CSS
外语专业毕业生自我评价分享
2013/10/05 职场文书
银行实习自我鉴定
2013/10/12 职场文书
汇源肾宝广告词
2014/03/20 职场文书
小学生中国梦演讲稿
2014/04/23 职场文书
《金色的脚印》教后反思
2014/04/23 职场文书
副检察长四风问题对照检查材料思想汇报
2014/10/07 职场文书
2014年财务部工作总结
2014/11/11 职场文书
搞笑婚庆主持词
2015/06/29 职场文书
小学体育课教学反思
2016/02/16 职场文书
Python破解极验滑动验证码详细步骤
2021/05/21 Python
Django rest framework如何自定义用户表
2021/06/09 Python
JavaScript实现栈结构详细过程
2021/12/06 Javascript