vue怎么强制刷新DOM

点击页面的按钮,操作树形表格的全部展开,但是现在是传过去的数据被改变了,但是dom没有改变,但是手动刷新的时候,又可以改变的,想求一个刷新自动刷新DOM的方法,或者别的解决方案

data(){
    return {
            treeAll:false,
        }
}
methods:{
    //    点击按钮展开所有的树形节点
    treeAllData(){
        this.treeAll=true
    }
}
阅读 39.7k
7 个回答

思路,先销毁dom再重新创建:

    <div v-if="!inResize">

......

    </div>

js:

                this.inResize = true;
                Vue.nextTick(t => {
                    this.inResize = false;
                })

你是通过路由传的值?

如果treeAll的值改变的话DOM不应该不会变,建议你把treeAll打印在页面上看看点击按钮时有没有变化

vue上一般不推荐使用强制刷新,问题应该出在你其中哪个地方的传值或者异步上,你可以代码贴全一点再进行分析?

你这个值是自己组件改变还是其他组件传过来的

vue应该不需要强制刷新,数据是自动更新到dom中的,估计你传值有问题吧

  1. 传过去的数据被改变了这个是从哪里观测到的。
  2. 开发模式,看devtools中子组件内的props对应的值是否随着你的操作自动更新了,没有的话说明的确没有被vue监测到,那可能就是哪里做了不必要的操作。

你示例里的代码不该发生这种问题。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题