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 相关文章推荐
仿163填写邮件地址自动显示下拉(无优化)
Nov 05 Javascript
js 蒙版进度条(结合图片)
Mar 10 Javascript
Jquery和JS用外部变量获取Ajax返回的参数值的方法实例(超简单)
Jun 17 Javascript
现如今最流行的JavaScript代码规范
Mar 08 Javascript
Jquery easyui 实现动态树
Nov 17 Javascript
javascript运动效果实例总结(放大缩小、滑动淡入、滚动)
Jan 08 Javascript
js事件处理程序跨浏览器解决方案
Mar 27 Javascript
javascript监听页面刷新和页面关闭事件方法详解
Jan 09 Javascript
详解Vue2 无限级分类(添加,删除,修改)
Mar 07 Javascript
Vue获取DOM元素样式和样式更改示例
Mar 07 Javascript
js设计模式之单例模式原理与用法详解
Aug 15 Javascript
基于iview-admin实现动态路由的示例代码
Oct 02 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
smarty高级特性之过滤器的使用方法
2015/12/25 PHP
Javascript &amp; DHTML 实例编程(教程)基础知识
2007/06/02 Javascript
兼容FireFox 的 js 日历 支持时间的获取
2009/03/04 Javascript
探讨js中的双感叹号判断
2013/11/11 Javascript
利用js判断浏览器类型(是否为IE,Firefox,Opera浏览器)
2013/11/22 Javascript
node.js使用npm 安装插件时提示install Error: ENOENT报错的解决方法
2014/11/20 Javascript
基于jquery实现可定制的web在线富文本编辑器附源码下载
2015/11/17 Javascript
Flow之一个新的Javascript静态类型检查器
2015/12/21 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
2016/07/27 Javascript
移动端点击图片放大特效PhotoSwipe.js插件实现
2016/08/25 Javascript
Node.js制作简单聊天室
2017/01/12 Javascript
详解使用create-react-app添加css modules、sasss和antd
2018/07/31 Javascript
Vue常见面试题整理【值得收藏】
2018/09/20 Javascript
jQuery实现ajax的嵌套请求案例分析
2019/02/16 jQuery
layui+SSM的数据表的增删改实例(利用弹框添加、修改)
2019/09/27 Javascript
vue - props 声明数组和对象操作
2020/07/30 Javascript
python实现log日志的示例代码
2018/04/28 Python
在Pycharm中修改文件默认打开方式的方法
2019/01/17 Python
对python周期性定时器的示例详解
2019/02/19 Python
python实现向微信用户发送每日一句 python实现微信聊天机器人
2019/03/27 Python
PyQt4 treewidget 选择改变颜色,并设置可编辑的方法
2019/06/17 Python
基于YUV 数据格式详解及python实现方式
2019/12/09 Python
CSS3 Notes: -webkit-box-reflect实现倒影的实例
2016/12/08 HTML / CSS
BONIA波尼亚新加坡官网:皮革手袋,鞋类和配件
2016/08/25 全球购物
比利时香水网上商店:NOTINO
2018/03/28 全球购物
LN-CC美国:伦敦时尚生活的缩影
2019/02/19 全球购物
DogBuddy荷兰:找到你最完美的狗保姆
2019/04/17 全球购物
database面试题
2013/03/28 面试题
护士自我鉴定范文
2013/10/06 职场文书
工业自动化毕业生自荐信范文
2014/01/04 职场文书
中学运动会广播稿
2014/01/19 职场文书
群众路线教育实践活动的心得体会
2014/09/03 职场文书
公证处委托书
2015/01/28 职场文书
个人原因辞职信模板
2015/05/13 职场文书
2016年“六一儿童节”校园广播稿
2015/12/17 职场文书
vue3语法糖内的defineProps及defineEmits
2022/04/14 Vue.js