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

自定義的組件在使用上,命名的規(guī)則如下:
- 注冊的時候:使用了
PascalCase命名。 - 使用的時候:可以使用
PascalCase命名(首字母不區(qū)分大小寫)或者kebab-case命名(每個單詞的首字母不區(qū)分大小寫)。
一般編碼的時候,習慣這樣:命名的時候采取PascalCase命名法,使用的時候采取kebab-case法(每個單詞的首字母小寫)。
父子組件數據傳遞時命名
父組件在給子組件傳遞變量的時候,如果變量名稱采用kebab-case法,那么子組件在接收的時候應該寫駝峰命名法。
例如,我再父組件中這么傳參:
<MyComponent :user-name="name"/>
子組件的接收:駝峰命名法。
<template>
<div class="border">
<h2>我是子組件</h2>
<div>接收來自父組件傳入的參數:{{ 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>
效果如下:

父子組件函數傳遞
父組件在傳遞給子組件的時候,命名上我測試下來沒有什么特殊的要求。先說下傳遞的命名上:
父組件傳遞:
<MyComponent :user-name="name" @sayHello="sayHello"/>
const sayHello = ()=>{
console.log('Hello')
}
子組件的接收上:
<template>
<div class="border">
<h2>我是子組件</h2>
<div>接收來自父組件傳入的參數:{{ props.userName }}</div>
<a @click="hello">點擊</a>
<br>
<a @click="hello2">點擊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>
結果如下:無論是使用下劃線分割還是原名,都可以正常接收。

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

