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

forward-wuyi 2018-07-09 原文

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

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

<!-- 操作 -->
        <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)
  })
}

至此就解决啦。

posted on 2018-07-09 17:29 Forward_wuyi 阅读() 评论() 编辑 收藏

 

 
版权声明:本文为forward-wuyi原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/forward-wuyi/p/9284863.html

vue中$set的使用(结合在实际应用中遇到的坑)的更多相关文章

随机推荐

  1. 第13本:《富爸爸,穷爸爸》 第13本:《富爸爸,穷爸爸》

    早就收藏了《富爸爸,穷爸爸》这本书,一直没看,最近仔细翻看一遍,发现自己智商一般,情商不行,原来财商更差,连书 […]...

  2. 记录一次买阿里云服务器、建站的经验

    备案之强制性 只要使用国内的储存空间,就需要备案,域名在国内或者国外买的都需要,因为备案其实是对存储空间的备案 […]...

  3. vue-router 快速入门

    ue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用。vue的 […]...

  4. 记录一个牛逼的计算机组成原理老师

      这老师是头年来重邮,说实话,他的科普、苹果发布会、人生履历都比他的课好玩。   讲个皮皮虾的故事。   皮 […]...

  5. IBM WebSphere MQ介绍安装以及配置服务详解 – jack_Meng

    IBM WebSphere MQ介绍安装以及配置服务详解 首先介绍一下MQ     MQ消息队列的简称是一种应 […]...

  6. U盘启动盘安装win10出现cdboot:couldn\’t find ntldr

    格式化硬盘后出现:cdboot:couldn\’t find ntldr      解决方法: 分 […]...

  7. UML类图表现方式

    看懂UML类图是学习设计模式的基础,同时也是工作中必须掌握的一门技能,也是以后自己做设计的工具,下面我根据一些 […]...

  8. IPhone微信H5用Video标签播放不了视频

    H5用Video标签播放视频 视频在安卓上可以正常播放,在苹果上却不能播放。 因为用了文件服务站点,而且不支持 […]...

展开目录

目录导航