Vue 的 ref 每次使用时都会执行 DOM 查找吗?

Sir*_*nce 4 javascript performance vue.js

我目前正在测试 Vue.js,并在我的项目中使用了一些引用。我不确定是否每次在我的方法中调用 ref 时都会执行 DOM Lookup,或者 vue 是否将所有 ref 存储一次然后访问该引用。

我无法在文档中或通过谷歌找到答案。

https://vuejs.org/v2/api/#ref

例子

myDiv = this.$refs.myDiv
Run Code Online (Sandbox Code Playgroud)

我是否需要自己将 ref 存储在变量中,或者多次调用 ref 时是否没有性能影响?

Vam*_*hna 6

查看源代码,当 vue 实例启动时,它会将属性$ref = { }设置为空对象。查看initLifecycle功能

这个vm.$refs对象是通过检查虚拟节点是否在函数中具有ref属性来填充的。vnode.data.refregisterRef

因此,您不必自己执行此操作。

并且引用$refs.myRef不执行 DOM 查找。它将由虚拟 dom 补丁进程管理。