如何访问名称包含破折号的 vue 道具?
How to access vue props with name contains dash sign?
我正在做一个 Vue
项目。根据 eslint
的要求,我不能用 camel case
命名道具,它会报告警告 Attribute ':clientId' must be hyphenated. eslint vue/attribute-hyphenation
is required to use kekab
case instead。例如,
<GranfFather :client-id="clientId" v-bind="$attrs">
<Father>
<GrandSon />
</Father>
</GrandFather>
我需要访问 <GrandSon />
组件中的 属性。一般我想把属性命名为clientId
,但是由于公司要求eslint
,只能命名为client-id
,否则将报告警告。所以,如果我想访问这个 属性,我想出的唯一方法就是使用 this.$attrs["client-id"]
。但我想知道如何通过 this.$attrs.clientId
或类似方法访问此 属性?
当我在 <GrandSon />
组件中使用 this.$attrs
时,它打印
{ client-id: "xxxxxx" }
这是否意味着我只能通过 this.$attrs["clientId"]
client-id
?
我想要的是仅通过使用 this.$attrs.clientId
.
访问 client-id
有区别props and attributes。
prop 应该在组件 props
中指定,它被规范化为驼峰大小写并且仅由提供 prop 的组件接收。
属性未规范化,可以 fall through 组件用作根元素。此行为由组件中的 inheritAttrs
属性 决定。它通常用于为根 HTML 元素提供 HTML 属性,但也可用于为最近的接受它的嵌套组件提供属性。
如果GrandSon
接收clientId
prop,需要在props
的组件中声明。尽管在这种情况下它显然可以从 GrandFather
接收作为 fallthrough 属性的道具,但最好将其显式提供为 <GrandSon :client-id="clientId">
以便它不依赖于根元素的特定层次结构。
我正在做一个 Vue
项目。根据 eslint
的要求,我不能用 camel case
命名道具,它会报告警告 Attribute ':clientId' must be hyphenated. eslint vue/attribute-hyphenation
is required to use kekab
case instead。例如,
<GranfFather :client-id="clientId" v-bind="$attrs">
<Father>
<GrandSon />
</Father>
</GrandFather>
我需要访问 <GrandSon />
组件中的 属性。一般我想把属性命名为clientId
,但是由于公司要求eslint
,只能命名为client-id
,否则将报告警告。所以,如果我想访问这个 属性,我想出的唯一方法就是使用 this.$attrs["client-id"]
。但我想知道如何通过 this.$attrs.clientId
或类似方法访问此 属性?
当我在 <GrandSon />
组件中使用 this.$attrs
时,它打印
{ client-id: "xxxxxx" }
这是否意味着我只能通过 this.$attrs["clientId"]
client-id
?
我想要的是仅通过使用 this.$attrs.clientId
.
client-id
有区别props and attributes。
prop 应该在组件 props
中指定,它被规范化为驼峰大小写并且仅由提供 prop 的组件接收。
属性未规范化,可以 fall through 组件用作根元素。此行为由组件中的 inheritAttrs
属性 决定。它通常用于为根 HTML 元素提供 HTML 属性,但也可用于为最近的接受它的嵌套组件提供属性。
如果GrandSon
接收clientId
prop,需要在props
的组件中声明。尽管在这种情况下它显然可以从 GrandFather
接收作为 fallthrough 属性的道具,但最好将其显式提供为 <GrandSon :client-id="clientId">
以便它不依赖于根元素的特定层次结构。