为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 Vue 中还存在 InheritAttrs ?

为什么 Vue 中还存在 InheritAttrs ?

翻过高山走不出你 2024-01-03 16:46:43
在 Vue 中,我们有inheritAttrs组件选项,当未在组件实例上false声明时,将阻止绑定作为属性应用到 DOM 。props例如,考虑一下:<some-component :article="article" />设置inheritAttrs为true(默认):<div article="[object Object]"></div>inheritAttrs设置为false:<div></div>我试图理解 a) 为什么这是true默认的?b)它为什么存在?在 DOM 中允许自定义属性会鼓励经验不足的工程师生成无效的 HTML,从而导致代码质量低劣。然而,我倾向于相信 Vue 工程师的经验,因此得出的结论是,它实际上在我尚未遇到的某些场景中很有用。如果在某些用例中这是可以的,那么我想知道,如果没有,那么它到底为什么存在?另外,有没有办法全局设置呢?我尝试了以下方法(不起作用):Vue.config.inheritAttrs = false;
查看完整描述

2 回答

?
www说

TA贡献1775条经验 获得超8个赞

它与自定义 HTML 属性无关。不管与否,你都可以这样做inheritAttrs

当您编写包装现有 HTML 元素的组件时,这是一种很有价值的机制。如果没有这个,您将需要在顶部元素中一一绑定每个属性。

它更多的是一种便利,而不是必要的功能。


查看完整回答
反对 回复 2024-01-03
?
弑天下

TA贡献1818条经验 获得超7个赞

默认情况下,您可以使用全局 mixin 对所有组件禁用此选项:

Vue.mixin({ inheritAttrs: false })

如果您需要继承特定组件的属性,显式添加inheritAttrs: true将覆盖全局 mixin 配置。


查看完整回答
反对 回复 2024-01-03
  • 2 回答
  • 0 关注
  • 55 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信