背景
在使用vscode+eslint-plugin-vue进行自动化代码风格修正的时候,发现插件自动把’template’部分的props的驼峰命名的变量改成了短横线(kebab-case)命名,而组件声明部分仍然为驼峰(camelCase)形式。
但实际并没有影响组件的正常运行。对这个问题查了下官网,原来是有说明的。
vue中Prop的命名
官网针对prop命名有如下说明:Prop 的大小写 (camelCase vs kebab-case)
HTML 中的 attribute 名是大小写不敏感的,所以浏览器会把所有大写字符解释为小写字符。这意味着当你使用 DOM 中的模板时,camelCase (驼峰命名法) 的 prop 名需要使用其等价的 kebab-case (短横线分隔命名) 命名
给了如下的例子:
1 | Vue.component('blog-post', { |
官网建议是在template部分中,我们使用短横线命名,post-title
,在组件中使用postTitle
是完全没有问题的。
一般情况,我们可能习惯了两边保持一致,都使用驼峰命名(即在template中也使用postTitle
)。这样其实在html渲染的时候,还是会先渲染成post-title
。
或者我们再js部分命名props时,也使用短横线post-title
也是可以的。