vue 元件命名的小細節問題(大小寫問題)
今天學習元件的時候,突然發現,定義的名為”Mycom"的元件在使用的時候用“mycom”使用沒有任何問題,於是我就試了一下哪種情況可以,哪種情況不可以。
首先說明一下,我註冊的是全域性元件。
1.簡單測試結果
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue 元件自定義屬性</title>
<script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
</head>
<body>
<div id="app">
<child message="helloppp!"></child>
<div>
<input v-model="parentMsg">
<br>
<child v-bind:message="parentMsg"></child>
</div>
<ol>
<a>aaaaa</a>
<My_com v-for="item in sites" v-bind:todo="item"></My_com>
</ol>
</div>
<script>
Vue.component('child', {
props: ['message'],
template: '<span>{{ message }}</span>'
})
Vue.component('My_com', {
props: ['todo'],
template: '<li>{{ todo.text }}</li>'
})
new Vue({
el: '#app',
data: {
parentMsg: '父元件內容',
sites: [
{ text: 'Runoob' },
{ text: 'Google' },
{ text: 'Taobao' }
]
}
})
</script>
</body>
</html>
註冊元件名 | 使用名 | 結果 |
---|
Mycom | Mycom | 正確 |
Mycom | mycom | 正確 |
Mycom | MyCom | 正確 |
Mycom | myCom | 正確 |
Mycom | MYCom | 正確 |
註冊元件名 | 使用名 | 結果 |
---|
mycom | mycom | 正確 |
mycom | Mycom | 正確 |
mycom | MyCom | 正確 |
mycom | myCom | 正確 |
mycom | MYCom | 正確 |
mycom | mYCom | 正確 |
註冊元件名 | 使用名 | 結果 |
---|
MyCom | MyCom | 錯誤 |
MyCom | Mycom | 錯誤 |
MyCom | mycom | 錯誤 |
MyCom | myCom | 錯誤 |
註冊元件名 | 使用名 | 結果 |
---|
MyCom | My-Com | 正確 |
MyCom | My-com | 正確 |
MyCom | my-com | 正確 |
MyCom | my-Com | 正確 |
註冊元件名 | 使用名 | 結果 |
---|
My_Com | My_Com | 錯誤 |
My_Com | my_Com | 錯誤 |
My_Com | my_com | 錯誤 |
My_Com | My_com | 錯誤 |
My_Com | my_-com | 正確 |
My_Com | My_-Com | 正確 |
註冊元件名 | 使用名 | 結果 |
---|
My_com | my_com | 正確 |
My_com | my_Com | 正確 |
My_com | My_Com | 正確 |
My_com | My_com | 正確 |
註冊元件名 | 使用名 | 結果 |
---|
my_com | my_com | 正確 |
my_com | my_Com | 正確 |
my_com | My_Com | 正確 |
my_com | My_com | 正確 |
測試結果如上發現只要你前面註冊的時候滿足了命名規則,那麼在使用的時候就是不區分大小寫的。如果不符合命名規則,那麼怎麼使用都是錯誤的
2.使用規則
首先根據上面我們測試的結果,以及查詢資料可知,註冊的時候,首字母可以大小寫,後面的字母也可以大小寫,但是使用的時候大寫字母前面需要用-隔開,並且使用的時候完全不區分大小寫,只要注意大寫字母前加-即可。例如:註冊“MyAppEds”,使用“My-App-Eds”。**注意:元件閉合標籤比較隨意,元件的閉合標籤是不需要加-符號,也不用區分大小寫就可以被識別的。**也就是說你像下面這麼使用是完全沒有問題的。
<my-co-me v-for="item in sites" v-bind:todo="item"></mYCo-me>
Vue.component('MyCoMe', {
props: ['todo'],
template: '<li>{{ todo.text }}</li>'
})
3.總結
元件註冊可以任意取名字,只要使用的時候將大寫字母前加 - 即可(首字母大寫除外)。