美文网首页让前端飞Web前端之路
vue中新增表格行和列设置对应值的时候不触发Dom更新的问题

vue中新增表格行和列设置对应值的时候不触发Dom更新的问题

作者: kentlin | 来源:发表于2019-12-19 16:07 被阅读0次

最近项目中出现了一个需求就是在现有的表格基础上添加新的行和列,本以为是一件很简单的事情,直到我在设置新增的对应值的时候发现了他不能触发Dom视图更新,不知该如何下手,我打印了表格数据发现了问题所在如下

image.png

新增的行数据里面没有set get也就触发不了视图更新, 如何解决这个问题呢? 我就想既然原来的数据 中有set 和 get我为啥不复制一个来作为最新的数据,但是随之而来的又有新的问题就是这里的set 和 get绑定的是原先的被复制的那一行数据这里新的行数据改变的时候也会影响到原来那一行数据于是我就想这里需要做一个深拷贝应该能解决问题, 这里就使用了JSON.parse(JSON.stringify(val))做了深拷贝,复制成功了, 也能独立触发set和get完美!!! 代码如下:

 @click='addObj.Table_data.push(clearObj($copy(addObj.Table_data[0])))'
let clearObj = obj => {  // 遍历对象并且清空数据
        Object.keys(obj).map(v => {
                obj[v] = ''
            })
            return obj
        }
let $copy = (val) =>  { // JSON形式的深拷贝
            return JSON.parse(JSON.stringify(val))
        };

接下来就是新增列数据,同样的由于是新增的表头数据,对应每个行数据里没有这个表头的set和get 那我们就分别给他们设置set和get就可,遍历每一行数据给他们添加这个新增表头对应键的set代码如下:

this.addObj.Table_data.map(v => {
    this.$set(v, this.addTableAddHeader, '')
})
this.headers.push(this.addTableAddHeader)

同样能解决视图不更新的问题,这个方法也可以用在行新增中,这里是分别列了两种方法而已。

相关文章

  • vue中新增表格行和列设置对应值的时候不触发Dom更新的问题

    最近项目中出现了一个需求就是在现有的表格基础上添加新的行和列,本以为是一件很简单的事情,直到我在设置新增的对应值的...

  • Office小技巧-快速调整Excel表格行高和列宽

    由于Excel在创建表格时,系统默认表格的行高和列宽为固定值,当我们使用表格的时候,经常会碰到表格内文字过多显示不...

  • vue的视图渲染优化

    在v-for渲染列表的时候,在节点上绑定对应的:key值,会让vue的视图在下次更新的时候跳过已经渲染的dom节点。

  • oracle sql 多行设置某列为随机整数 小数

    oracle sql 多行设置某列为随机整数 小数 数据表格的前200行,把某列值设置为1~90的随机值 upda...

  • vue原理与开发逻辑

    1、vue中的$nextTick()的用法和原理 vue的DOM更新是异步的,当数据更新了,再dom中渲染后,自动...

  • Jupyter-设置显示行数列数

    1 数据表显示所有行和列 设置为 None,会显示所有的行和列。只设置为数字的时候无效。 2 列内值省略消除 在j...

  • [HTML表格]2.编程练习(2-8)

    1.表格行与列的添加与删除 1)行添加对应行下添加 并与其他行添加相同数量的列。 2)行删除对应行下删除 3)列...

  • vscode使用ctrl+左键

    vue项目中,使用ctrl+左键点击DOM中的组件标签,自动打开跳转到对应组件功能在设置中打开vscode的设置选...

  • 原生JS实现不固定行和列的表格

    之前有个需求,就是需要一个不固定行和列的表格,第一行的所有列的标题内容,用来表示数据对象中的key,而表格中的其他...

  • PPT

    在表格中插入图片 选择插入表格 设置行数与列数 设置4列3行 按住Shift键 等比例放大 选择一个单元格 点击设...

网友评论

    本文标题:vue中新增表格行和列设置对应值的时候不触发Dom更新的问题

    本文链接:https://www.haomeiwen.com/subject/iznmnctx.html