采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
请问下,vue的ref是操作的真实dom还是说操作虚拟dom再映射到真实dom上?谢谢,新年快乐!
hi,寂寞同学,元旦快乐。回答你的问题:
vue 的 ref 返回的是 VueComponent 或 DOM 对象,它的初始化在 patch 阶段,源码如下:
var ref = vnode.componentInstance || vnode.elm;
可以看到如果 vnode 是一个 Component,那么 ref 会获取 vnode.componentInstance,这是因为 ref 可能是组件的一个属性,这时会返回 VueComponent 对象。如果 vnode 是普通 DOM,那么会返回 vnode.elm,vnode.elm 存储的是真实 DOM 不是虚拟 DOM,打个断点测试如下代码:
vnode.elm instanceof Node // true
可以看到 vnode.elm 实际是真实 DOM。
希望可以帮到你!
谢谢Sam老师,也就是说通过ref操作dom和直接获取dom进行操作性能基本没有区别?
是的,没区别
登录后可查看更多问答,登录/注册
基于Element的中后台课程,一套中小型企业通用的后台管理系统
1.9k 2
3.0k 12
4.2k 20
926 17
1.7k 16