百科狗-知识改变命运!
--

内置的特殊 Attributes ​

梵高1年前 (2023-11-21)阅读数 18#技术干货
文章标签元素

内置的特殊 Attributes ​

key ​

key 这个特殊的 attribute 主要作为 Vue 的虚拟 DOM 算法提示,在比较新旧节点列表时用于识别 vnode。

  • 预期number | string | symbol

  • 详细信息

    在没有 key 的情况下,Vue 将使用一种最小化元素移动的算法,并尽可能地就地更新/复用相同类型的元素。如果传了 key,则将根据 key 的变化顺序来重新排列元素,并且将始终移除/销毁 key 已经不存在的元素。

    同一个父元素下的子元素必须具有唯一的 key。重复的 key 将会导致渲染异常。

    最常见的用例是与 v-for 结合:

    template
     ...

    也可以用于强制替换一个元素/组件而不是复用它。当你想这么做时它可能会很有用:

    • 在适当的时候触发组件的生命周期钩子
    • 触发过渡

    举例来说:

    template
     {{ text }}

    text 变化时, 总是会被替换而不是更新,因此 transition 将会被触发。

  • 参考指南 - 列表渲染 - 通过 key 管理状态

ref ​

用于注册模板引用。

  • 预期string | Function

  • 详细信息

    ref 用于注册元素或子组件的引用。

    使用选项式 API,引用将被注册在组件的 this.$refs 对象里:

    template
    hello

    使用组合式 API,引用将存储在与名字匹配的 ref 里:

    vue
    import { ref } from 'vue'const p = ref() hello

    如果用于普通 DOM 元素,引用将是元素本身;如果用于子组件,引用将是子组件的实例。

    或者 ref 可以接收一个函数值,用于对存储引用位置的完全控制:

    template

    内置的特殊 Attributes ​

    关于 ref 注册时机的重要说明:因为 ref 本身是作为渲染函数的结果来创建的,必须等待组件挂载后才能对它进行访问。

    this.$refs 也是非响应式的,因此你不应该尝试在模板中使用它来进行数据绑定。

  • 参考

    • 指南 - 模板引用
    • 指南 - 为模板引用标注类型
    • 指南 - 为组件模板引用标注类型

is ​

用于绑定动态组件。

  • 预期string | Component

  • 用于原生元素 3.1+

    is attribute 用于原生 HTML 元素时,它将被当作 Customized built-in element,其为原生 web 平台的特性。

    但是,在这种用例中,你可能需要 Vue 用其组件来替换原生元素,如 DOM 内模板解析注意事项所述。你可以在 is attribute 的值中加上 vue: 前缀,这样 Vue 就会把该元素渲染为 Vue 组件:

    template
     
  • 参考

    • 内置特殊元素 -
    • 动态组件

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)