key:用在 Vue 的虚拟 DOM 算法,在新旧 nodes 对比时辨识 VNodes。
常用姿势:
1、结合 v-for,有相同父元素的子元素必须有唯一key。
<ul>
<li v-for="item in items" :key="item.id">...</li>
</ul>
2、强制替换元素/组件而不是复用它。
使用场景:
- 完整地触发组件的生命周期钩子
- 触发过渡
下例中,当 text
发生改变时,<span>
会被更新,因此触发过渡。
<transition>
<span :key="text">{{ text }}</span>
</transition>
ref:给元素或子组件注册引用,在普通的DOM 元素上使用,引用指向的就是 DOM 元素;在子组件上,引用指向组件实例,通过父实例的 $refs
对象访问引用。
当 v-for
用于元素或组件的时候,引用是包含 DOM 节点或组件实例的数组。
注意:
1、ref 是作为渲染结果被创建的,在初始渲染的时候不存在,所以不能访问。
2、$refs 不是响应式的,不应该用它在模板中做数据绑定。
is:用于动态组件且基于 DOM 内模板的限制来工作。