问题
vue中自定义的组件名在html中字母大写会报错
html:
js:
自定义的组件中字母可以大写,但是在html标签中,字母有大写的就会报错
原因
- 这是因为html中不区分大小写,所以在html中如果写为 likeBig,就会自动解析为 likebig
- 匹配的优先顺序从高到低为:原标签名、likeBig化的标签名、LikeBig化的标签名
- 而由于 html解析成likeBig时,相当于将该标签当成了一个单词进行了转换,所以它的匹配顺序为likebig,likebig,Likebig,所以找不到对应组件
解决的办法
- 在html标签中将两个单词用-隔开,like-big,这时就相当于是两个单词
- 会依次匹配 like-big,likeBig,LikeBig
总结
vue中是支持命名中有字母大写的,但是模板解析插入dom时,不区分大小写,都转成了小写,所以会导致,匹配不到对应的组件