Vue中組件命名與引用過程
Vue中組件命名與引用
在 vue 項(xiàng)目中,我們會(huì)發(fā)現(xiàn)在代碼中,import 組件 和 components 組件注冊(cè)中得命名方式與組件引用時(shí)的命名方式不一樣,這種現(xiàn)象是由組件名的大小寫轉(zhuǎn)換規(guī)則造成的。
如下示例:
- 組件引入與注冊(cè):
// 導(dǎo)入組件(使用大駝峰命名)
import UserChoose from "../components/user";
export default {
components: {
UserChoose // 注冊(cè)組件(大駝峰命名)
}
}
- 組件引用:
<!-- 在模板中使用組件(短橫線命名) --> <user-choose></user-choose>
Vue支持兩種組件命名方式
1、PascalCase(大駝峰命名)
像 UserChoose 這樣,每個(gè)單詞首字母大寫。
在 JavaScript 里定義組件或者導(dǎo)入組件時(shí),通常會(huì)采用這種命名方式。
2、kebab-case(短橫線分隔命名)
例如 user-choose,單詞之間用短橫線分隔。在 Vue 模板的 HTML 標(biāo)簽里引用組件時(shí),需要使用這種命名方式。
Vue 之所以要進(jìn)行這種轉(zhuǎn)換,是為了適配 HTML 對(duì)大小寫不敏感的特性。當(dāng)你在模板里使用短橫線命名的組件時(shí),Vue 會(huì)自動(dòng)將其映射為對(duì)應(yīng)的大駝峰命名的組件。
也可以選擇在模板中直接使用大駝峰命名,但必須保證處于原生 HTML 支持大寫標(biāo)簽的環(huán)境中,比如單文件組件(SFC)。不過,為了保證代碼風(fēng)格的一致性,建議統(tǒng)一使用短橫線命名。
<!-- 這種寫法僅在SFC中有效 --> <UserChoose></UserChoose>
推薦寫法
<!-- 推薦:統(tǒng)一使用 kebab-case -->
<template>
<div>
<occupation-choose />
</div>
</template>
<script>
import UserChoose from './components/user.vue'
export default {
components: {
'user-choose': UserChoose // 與模板一致
}
}
</script>
單文件組件(SFC)
1、什么是單文件組件(SFC)
單文件組件(Single-File Component,SFC)是 Vue.js 特有的一種文件格式,也被稱為.vue文件。
它把一個(gè) Vue 組件的模板(template)、 邏輯(script)和樣式(style) 封裝在同一個(gè)文件里,形成一個(gè)獨(dú)立的組件單元。
這種設(shè)計(jì)讓組件具有很強(qiáng)的內(nèi)聚性和可維護(hù)性,是 Vue 項(xiàng)目的核心組織方式。
2、單文件組件(.vue)的結(jié)構(gòu)
<template>
<!-- 組件的HTML結(jié)構(gòu) -->
<div class="hello-world">
<h1>{{ message }}</h1>
<button @click="greet">Say Hello</button>
</div>
</template>
<script>
// 組件的JavaScript邏輯
export default {
data() {
return {
message: 'Hello, Vue!'
}
},
methods: {
greet() {
this.message = 'Hello from Vue SFC!'
}
}
}
</script>
<style scoped>
/* 組件的CSS樣式,scoped表示樣式只作用于當(dāng)前組件 */
.hello-world {
padding: 20px;
text-align: center;
}
button {
background-color: #42b983;
color: white;
border: none;
padding: 8px 16px;
cursor: pointer;
}
</style>
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue-cli 3.x 配置Axios(proxyTable)跨域代理方法
今天小編就為大家分享一篇vue-cli 3.x 配置Axios(proxyTable)跨域代理方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-09-09
vue3.0中使用websocket,封裝到公共方法的實(shí)現(xiàn)
這篇文章主要介紹了vue3.0中使用websocket,封裝到公共方法的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10
詳解Vue-axios 設(shè)置請(qǐng)求頭問題
這篇文章主要介紹了Vue-axios 設(shè)置請(qǐng)求頭問題,文中給大家提到了axios設(shè)置請(qǐng)求頭內(nèi)容的方法,需要的朋友可以參考下2018-12-12
vue-cli+axios實(shí)現(xiàn)文件上傳下載功能(下載接收后臺(tái)返回文件流)
這篇文章主要介紹了vue-cli+axios實(shí)現(xiàn)文件上傳下載功能(下載接收后臺(tái)返回文件流),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05
vue項(xiàng)目中的數(shù)據(jù)變化被watch監(jiān)聽并處理
這篇文章主要介紹了vue項(xiàng)目中的數(shù)據(jù)變化被watch監(jiān)聽并處理,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
詳解從react轉(zhuǎn)職到vue開發(fā)的項(xiàng)目準(zhǔn)備
這篇文章主要介紹了詳解從react轉(zhuǎn)職到vue開發(fā)的項(xiàng)目準(zhǔn)備,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-01-01
el-table實(shí)現(xiàn)給每行添加loading效果案例
這篇文章主要介紹了el-table實(shí)現(xiàn)給每行添加loading效果案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08

