当nextTick不起作用时,如何从.vue文件中获取Vue立即更新实际DOM?

帕特里克·萨拉斯基(Patrick Szalapski)

当我在带有数据成员isLoading: false和模板的.vue文件中具有Vue组件时

<div v-show="isLoading" id="hey" ref="hey">Loading...</div>
<button @click="loadIt()">Load it</button>

和方法:

loadIt() {
  this.isLoading = true
  this.$nextTick(() => {
    console.log(this.$refs.hey)                  // virtual DOM
    console.log(document.getElementById('hey'))  // actual DOM
    // ...other work here
  })
}

我认为nextTick函数将允许虚拟DOM和实际DOM都进行更新,因此两条console.log行将输出相同的结果。但是,它们没有这样做:似乎真实的DOM并没有立即更新,因此第二个日志生成带有的元素,display: none;而第一个日志却没有-我在控制台上得到了:

<div id="hey" data-v-964d645e="" style="">
<div id="hey" data-v-964d645e="" style="display: none;">

(顺便说一句,即使我使用setTimeout而不是this.$nextTick,我也从console.log获得了相同的结果。我也尝试使用该updated钩子,但是同样的症状在那里发生。消失,但在.vue文件中时仍然存在。)

Vue如何从虚拟DOM更新实际DOM是否有某种优化或进一步的异步性?我如何立即获取实际的DOM?

帕特里克·萨拉斯基(Patrick Szalapski)

事实证明,eslint-loader高速缓存或babel-loader高速缓存存在问题导致了这种怪异。我只能通过删除全部来修复它node_modules\.cache太糟糕了,我不知道为什么会首先发生。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

传统方式不起作用时如何更新点子?

当GROUP BY不起作用时,如何获取汇总汇总?

SQL:如何在 in() 子句不起作用时获取数据

当control-g在非常大的文件中不起作用时,如何中断emacs?

当Process Explorer和Handle不起作用时,如何找出哪个进程正在使用文件?

剪切cmd不起作用时如何仅显示文件名?

当说明不起作用时,如何在Windows 7上编辑主机文件?

当 notnull、dropna 和 != 'nan' 不起作用时,如何从数据帧列中删除 nan 值?

在Oracle中像'%%'这样使用时如何使用提示?使用索引但不起作用

当基本命令不起作用时,如何在 ~/.bashrc 中恢复我的 PATH?

当修剪不起作用时,如何从Excel单元格中删除空格的公式是什么?

当`Esc`在R中不起作用时如何停止运行函数?

当通常的方法似乎不起作用时,如何在echo命令中插入空格

当“message = FALSE”不起作用时,如何在 R markdown 中隐藏消息

当条件不起作用时metamug资源文件

从 PHP 调用时,Powershell 中的导入模块不起作用

从类中调用时,清除主机不起作用

在componentWillUnmount中调用时removeEventListener不起作用

jQuery插件在页面中多次使用时不起作用

“history -c”在脚本中调用时不起作用?

在搜索栏中重新输入不起作用时

如何调试更新任务中打印的SAPScript表单?(当OPEN_FORM中的断点不起作用时)

仅当 VUE 中的当前对象不起作用时才选择类

粘性Navbar在组件中使用时在bootstrap-vue中不起作用

当XML / XPath似乎不起作用时,如何使用Excel VBA从动态网页中解析值?

当自定义不起作用时,如何在 Excel 中重命名加载项的选项卡?

为什么当查询本身起作用时,php脚本中的该查询不起作用?

Vue / Laravel-更新时上传文件不起作用

与 v-for 和 v-if 结合使用时,Vue 过渡模式不起作用