Vue駝峰與短橫線分割命名中有哪些坑
駝峰和短橫線分割命名注意事項(xiàng)
我們一般定義組件的方式有兩種:
- 短橫線分隔命名:
kebab-case。 - 首字母大寫命名:
PascalCase。
組件注冊(cè)命名
例如,我寫一個(gè)簡(jiǎn)單的子組件。
<template>
<div class="border">
<h2>我是子組件</h2>
</div>
</template>
<script setup>
</script>
<style scoped>
.border {
border: 1px solid;
width: 400px;
}
</style>
注冊(cè)的時(shí)候采用PascalCase命名:
createApp(App)
.component('MyComponent', MyComponent)
.mount('#app')
使用的時(shí)候:
<template>
<div class="border">
<h1 >我是父組件</h1>
<my-component />
<!-- <MyComponent /> -->
<!-- <myComponent /> -->
</div>
</template>
<style scoped>
.border {
border: 1px solid;
width: 400px;
height: 200px;
}
</style>
結(jié)果如下:

自定義的組件在使用上,命名的規(guī)則如下:
- 注冊(cè)的時(shí)候:使用了
PascalCase命名。 - 使用的時(shí)候:可以使用
PascalCase命名(首字母不區(qū)分大小寫)或者kebab-case命名(每個(gè)單詞的首字母不區(qū)分大小寫)。
一般編碼的時(shí)候,習(xí)慣這樣:命名的時(shí)候采取PascalCase命名法,使用的時(shí)候采取kebab-case法(每個(gè)單詞的首字母小寫)。
父子組件數(shù)據(jù)傳遞時(shí)命名
父組件在給子組件傳遞變量的時(shí)候,如果變量名稱采用kebab-case法,那么子組件在接收的時(shí)候應(yīng)該寫駝峰命名法。
例如,我再父組件中這么傳參:
<MyComponent :user-name="name"/>
子組件的接收:駝峰命名法。
<template>
<div class="border">
<h2>我是子組件</h2>
<div>接收來自父組件傳入的參數(shù):{{ props.userName }}</div>
</div>
</template>
<script setup lang="ts">
import { computed, defineProps, withDefaults } from "vue";
interface Props {
// 記得使用駝峰命名法
userName: string;
}
const props = withDefaults(defineProps<Props>(), {
userName: "",
});
</script>
<style scoped>
.border {
border: 1px solid;
width: 400px;
}
</style>
效果如下:

父子組件函數(shù)傳遞
父組件在傳遞給子組件的時(shí)候,命名上我測(cè)試下來沒有什么特殊的要求。先說下傳遞的命名上:
父組件傳遞:
<MyComponent :user-name="name" @sayHello="sayHello"/>
const sayHello = ()=>{
console.log('Hello')
}
子組件的接收上:
<template>
<div class="border">
<h2>我是子組件</h2>
<div>接收來自父組件傳入的參數(shù):{{ props.userName }}</div>
<a @click="hello">點(diǎn)擊</a>
<br>
<a @click="hello2">點(diǎn)擊2</a>
</div>
</template>
<script setup lang="ts">
import { defineProps, withDefaults } from "vue";
interface Props {
userName: string;
}
const props = withDefaults(defineProps<Props>(), {
userName: "",
});
const emit = defineEmits(["say-hello", "sayHello"]);
const hello = () => {
emit("say-hello");
};
const hello2 = () => {
emit("sayHello");
};
</script>
<style scoped>
.border {
border: 1px solid;
width: 400px;
}
</style>
結(jié)果如下:無論是使用下劃線分割還是原名,都可以正常接收。

經(jīng)過測(cè)試,父組件在傳函數(shù)的時(shí)候,使用kebab-case法,和上述案例一個(gè)效果。
因此我們就這么約定吧:
父組件傳遞函數(shù)的時(shí)候,就原名傳入即可。
到此這篇關(guān)于Vue駝峰與短橫線分割命名中有哪些坑的文章就介紹到這了,更多相關(guān)Vue駝峰與短橫線分割命名內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用proxy實(shí)現(xiàn)一個(gè)更優(yōu)雅的vue【推薦】
Proxy 用于修改某些操作的默認(rèn)行為,等同于在語言層面做出修改,所以屬于一種“元編程”。這篇文章主要介紹了用proxy實(shí)現(xiàn)一個(gè)更優(yōu)雅的vue,需要的朋友可以參考下2018-06-06
Element-ui?DatePicker日期選擇器基礎(chǔ)用法示例
這篇文章主要為大家介紹了Element-ui?DatePicker日期選擇器基礎(chǔ)用法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
通過GASP讓vue實(shí)現(xiàn)動(dòng)態(tài)效果實(shí)例代碼詳解
GASP是一個(gè)JavaScript動(dòng)畫庫(kù),它支持快速開發(fā)高性能的 Web 動(dòng)畫。GASP 使我們能夠輕松輕松快速的將動(dòng)畫串在一起,來創(chuàng)造一個(gè)高內(nèi)聚的流暢動(dòng)畫序列。這篇文章主要介紹了通過GASP讓vue實(shí)現(xiàn)動(dòng)態(tài)效果,需要的朋友可以參考下2019-11-11
vue中實(shí)現(xiàn)在外部調(diào)用methods的方法(推薦)
下面小編就為大家分享一篇vue中實(shí)現(xiàn)在外部調(diào)用methods的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-02-02
Vue3通過JSON渲染ElementPlus表單的流程步驟
這篇文章主要介紹了Vue3通過JSON渲染ElementPlus表單的流程步驟,文中通過代碼示例和圖文給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-10-10

