vue中,全局子组件命名使用驼峰命名,是不是不被支持?但是又能大写首字母?
来源:1-2 组件的定义及复用性,局部组件和全局组件(2)
im镇辉
2021-11-07 16:15:19
vue中,全局子组件命名使用驼峰命名,是不是不被支持?但是又能大写首字母?
相关代码:
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>lesson</title>
<script src="https://unpkg.com/vue@next"></script>
</head>
<body>
<div id="root">
<div>
<hello></hello>
</div>
<div>
<hello></hello>
</div>
<div>
<World></World>
</div>
<div>
<hello-parent></hello-parent>
</div>
<div><counter></counter></div>
</div>
<script>
// 组件的定义
// 组件具备复用性,组件的数据为组件独享,相同组件之间的运算互不影响.(个人理解:
// 同样是人,相貌都相同,但是行为不同,遇事不同)
// 全局组件,只要定义了,处处可以使用,性能不高,但是使用起来简单,名字建议,小写字母单词,中间用-隔开
// 局部组件,定义了,要在实例用components,声明(注册)之后才能使用,性能比较高,使用起来有些麻烦,建议大写字母开头,驼峰命名。
// 局部组件使用时,要做一个名字和组件间的映射对象,你不写映射, Vue底层也会自动尝试帮你映射
// 局部组件counter :需要放在实例的上面
const counter = {
data() {
return {
count: 1
}
},
template: `<div @click="count+=1">{{count}}</div>`
}
// 创建vue的实例
const app = Vue.createApp({ // 创建vue的实例
//双引号这个是标签上要用的,没有双引号这个是定位局部组件用的
// components: { "counter": counter }
// 如果components里面的key 和value值相同,根据es6的语法 可以简写如下
components: { counter }
});
// 注意:子组件命名的时候,因为标签名字中间不能用大写,所以组件命名时中间也不能用大写,
// 但是首字母可以大写(但是用于局部变量比较规范),所以可以用-隔开
// 子组件hello(全局组件)
app.component('hello', {
template: `hello`
})
// 子组件world(全局组件)
app.component('World', {
template: `world`
})
// hello-parent(全局组件) 子组件中应用其他的子组件
app.component("hello-parent", {
template: `<hello></hello>`
})
const vm = app.mount('#root')
// const app = Vue.createApp({
// });
// const vm = app.mount('#root')
</script>
</body>
</html>1回答
同学你好,组件名可以使用首字母大写的驼峰式命名,详情可以结合官网的介绍,其中有一句话需要注意下,如下:

示例:

但是在其他组件中通过template模板引入子组件,就可以使用首字母大写的形式,如下:

虽然可以使用首字母大写的驼峰式组件名,但是更推荐使用全小写以连字符-分开的格式。
祝学习愉快~
相似问题