关于vue子组件的数据变了视图不更新的解决办法(转载)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于vue子组件的数据变了视图不更新的解决办法(转载)相关的知识,希望对你有一定的参考价值。

参考技术A 原因是因为vue不能检测data中数组的变动,

Vue.set() 响应式新增与修改数据

此时我们需要知道Vue.set()需要哪些参数,官方API:Vue.set()

调用方法:Vue.set( target, key, value )

target:要更改的数据源(可以是对象或者数组)

key:要更改的具体数据

value :重新赋的值

el-table作为子组件tableHeight值变了,视图却没有更新

视图效果如下:

技术图片

 

 

解决办法如下:

// 在子组件挂载完成后,采用定时器延缓计算表格高度
mounted() {
    /** 计算表格高度
        *  使用定时器来计算表格高度,避免展开/收起查询条件时表格高度不更新
        */
    let timer;
    clearInterval(timer);
    setInterval(() => {
        this.$nextTick(() => {
            this.tableHeight = this.tbHeight - 0;   // 计算表格高度
        });
    }, 1);
}

 

以上是关于关于vue子组件的数据变了视图不更新的解决办法(转载)的主要内容,如果未能解决你的问题,请参考以下文章

vue对象或者数组中数据变化但是视图没有更新

vue3关于.sync的用法

vue 数据对象内部属性变化 dom无法更新视图问题(elementui tree组件修改节点数据无法更新视图的问题)

vue父组件异步获取数据传值给子组件

vue路由改变了数据和内容不变的解决办法

vue 强制刷新子组件