Vue2 的 ref 主要通过以下机制实现:

  1. 编译阶段识别模板中的 ref 属性,将其绑定到虚拟节点(VNode)上。

    1. data = { ref: "xxxRef", ... }
  2. 创建真实节点时区分组件和 DOM:

  3. 注册时机

  4. 动态管理:在组件销毁或 DOM 移除时,自动清理 $refs 中的引用。

  5. v-for 场景下,$refs.xxx 会是一个数组,存储多个实例或 DOM。