Vue注冊(cè)組件命名時(shí)不能用大寫的原因淺析
這段時(shí)間一直在弄vue,當(dāng)然也遇到很多問題,這里就來跟大家分享一些注冊(cè)自定義模板組件的心得。
首先“VUE注冊(cè)組件命名時(shí)不能用大寫“其實(shí)這句話是不對(duì)的,但我們很多人開始都覺得是對(duì)的,因?yàn)榇蠹叶疾冗^大寫命名的坑
下面我們來看個(gè)例子:
<div id="app">
<myTemplate></myTemplate>
</div>
<script>
Vue.component('myTemplate',{
template: '<h1>這里是自定義組件的內(nèi)容</h1>'
})
new Vue({
el: '#app'
})
</script>
當(dāng)我看完官網(wǎng)的文檔后,信心滿滿的第一次準(zhǔn)備自定義組件時(shí),就寫的跟上面差不多類型的代碼
但是當(dāng)我運(yùn)行代碼時(shí),組件并沒有被渲染出來,反而報(bào)錯(cuò)了說我用的組件沒有注冊(cè),我當(dāng)時(shí)真是擠破腦袋想了半天也沒發(fā)現(xiàn)問題出在哪里
這時(shí)候我在想難道我的命名和源碼里的沖突了?于是我把代碼改成這樣了↓
<div id="app">
<mytemplate></mytemplate>
</div>
<script>
Vue.component('mytemplate',{
template: '<h1>這里是自定義組件的內(nèi)容</h1>'
})
new Vue({
el: '#app'
})
</script>
然后運(yùn)行代碼,ok完全正常,這時(shí)候大家都會(huì)認(rèn)為vue注冊(cè)組件不能用大寫命名,我當(dāng)時(shí)也這么認(rèn)為的,直到這兩天在用餓了么elementUI框架,當(dāng)我看了他們的源碼,發(fā)現(xiàn)原來并不是這樣
他們注冊(cè)組件的命名就和我第一次一樣myTemplate,標(biāo)準(zhǔn)的駝峰命名方法,那么我一開始為什么會(huì)報(bào)錯(cuò)呢?這是為什么呢?難道VUE嫌棄我?
原來是我調(diào)用組件時(shí)的方法錯(cuò)了,VUE是允許用大寫字母來注冊(cè)組件的,但當(dāng)你使用時(shí)得在駝峰命名的大寫字母間加上”-“并都改為小寫,看下面代碼
<div id="app">
<my-template></my-template>
</div>
<script>
Vue.component('myTemplate',{
template: '<h1>這里是自定義組件的內(nèi)容</h1>'
})
new Vue({
el: '#app'
})
</script>
代碼運(yùn)行正常,這個(gè)時(shí)候大家是不是看出來,vue其實(shí)是可以用大寫字母命名注冊(cè)的
后面我也試了很多種命名方式,比如”my-template“這樣也是可以的
”My-template“這樣的會(huì)報(bào)錯(cuò)
----------------------------------------------------------------
后來在官網(wǎng)看到這句話camelCase vs. kebab-case HTML 特性是不區(qū)分大小寫的。所以,當(dāng)使用的不是字符串模版,camelCased (駝峰式) 命名的 prop 需要轉(zhuǎn)換為相對(duì)應(yīng)的 kebab-case (短橫線隔開式) 命名: 如果你使用字符串模版,則沒有這些限制。
總結(jié)
以上所述是小編給大家介紹的Vue注冊(cè)組件命名時(shí)不能用大寫的原因淺析,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
想到頭禿也想不到的Vue3復(fù)用組件還可以這么hack的用法
這篇文章主要為大家介紹了想到頭禿也想不到的Vue3復(fù)用組件還可以這么hack的用法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
VUE+Element-ui實(shí)戰(zhàn)之使用el-calendar日歷自定義顯示內(nèi)容
這篇文章主要介紹了VUE+Element-ui實(shí)戰(zhàn)之使用el-calendar日歷自定義顯示內(nèi)容方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
vue實(shí)現(xiàn)彈窗引用另一個(gè)頁面窗口
這篇文章主要介紹了vue實(shí)現(xiàn)彈窗引用另一個(gè)頁面窗口,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
解決Vue-cli npm run build生產(chǎn)環(huán)境打包,本地不能打開的問題
今天小編就為大家分享一篇解決Vue-cli npm run build生產(chǎn)環(huán)境打包,本地不能打開的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-09-09
使用sessionStorage解決vuex在頁面刷新后數(shù)據(jù)被清除的問題
localStorage沒有時(shí)間期限,除非將它移除,sessionStorage即會(huì)話,當(dāng)瀏覽器關(guān)閉時(shí)會(huì)話結(jié)束,有時(shí)間期限,具有自行百度。本文使用的是sessionStorage解決vuex在頁面刷新后數(shù)據(jù)被清除的問題,需要的朋友可以參考下2018-04-04
layui實(shí)際項(xiàng)目使用過程中遇到的兼容性問題及解決
這篇文章主要介紹了layui實(shí)際項(xiàng)目使用過程中遇到的兼容性問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04

