Vue駝峰與短橫線(xiàn)分割命名中有哪些坑
駝峰和短橫線(xiàn)分割命名注意事項(xiàng)
我們一般定義組件的方式有兩種:
- 短橫線(xiàn)分隔命名:
kebab-case
。 - 首字母大寫(xiě)命名:
PascalCase
。
組件注冊(cè)命名
例如,我寫(xiě)一個(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ū)分大小寫(xiě))或者kebab-case
命名(每個(gè)單詞的首字母不區(qū)分大小寫(xiě))。
一般編碼的時(shí)候,習(xí)慣這樣:命名的時(shí)候采取PascalCase
命名法,使用的時(shí)候采取kebab-case
法(每個(gè)單詞的首字母小寫(xiě))。
父子組件數(shù)據(jù)傳遞時(shí)命名
父組件在給子組件傳遞變量的時(shí)候,如果變量名稱(chēng)采用kebab-case
法,那么子組件在接收的時(shí)候應(yīng)該寫(xiě)駝峰命名法。
例如,我再父組件中這么傳參:
<MyComponent :user-name="name"/>
子組件的接收:駝峰命名法。
<template> <div class="border"> <h2>我是子組件</h2> <div>接收來(lái)自父組件傳入的參數(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è)試下來(lái)沒(méi)有什么特殊的要求。先說(shuō)下傳遞的命名上:
父組件傳遞:
<MyComponent :user-name="name" @sayHello="sayHello"/> const sayHello = ()=>{ console.log('Hello') }
子組件的接收上:
<template> <div class="border"> <h2>我是子組件</h2> <div>接收來(lái)自父組件傳入的參數(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é)果如下:無(wú)論是使用下劃線(xiàn)分割還是原名,都可以正常接收。
經(jīng)過(guò)測(cè)試,父組件在傳函數(shù)的時(shí)候,使用kebab-case
法,和上述案例一個(gè)效果。
因此我們就這么約定吧:
父組件傳遞函數(shù)的時(shí)候,就原名傳入即可。
到此這篇關(guān)于Vue駝峰與短橫線(xiàn)分割命名中有哪些坑的文章就介紹到這了,更多相關(guān)Vue駝峰與短橫線(xiàn)分割命名內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用proxy實(shí)現(xiàn)一個(gè)更優(yōu)雅的vue【推薦】
Proxy 用于修改某些操作的默認(rèn)行為,等同于在語(yǔ)言層面做出修改,所以屬于一種“元編程”。這篇文章主要介紹了用proxy實(shí)現(xiàn)一個(gè)更優(yōu)雅的vue,需要的朋友可以參考下2018-06-06Element-ui?DatePicker日期選擇器基礎(chǔ)用法示例
這篇文章主要為大家介紹了Element-ui?DatePicker日期選擇器基礎(chǔ)用法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06通過(guò)GASP讓vue實(shí)現(xiàn)動(dòng)態(tài)效果實(shí)例代碼詳解
GASP是一個(gè)JavaScript動(dòng)畫(huà)庫(kù),它支持快速開(kāi)發(fā)高性能的 Web 動(dòng)畫(huà)。GASP 使我們能夠輕松輕松快速的將動(dòng)畫(huà)串在一起,來(lái)創(chuàng)造一個(gè)高內(nèi)聚的流暢動(dòng)畫(huà)序列。這篇文章主要介紹了通過(guò)GASP讓vue實(shí)現(xiàn)動(dòng)態(tài)效果,需要的朋友可以參考下2019-11-11在IDEA中配置eslint和prettier的全過(guò)程
日常開(kāi)發(fā)中,建議用可以用Prettier做代碼格式化,然后用eslint做校驗(yàn),下面這篇文章主要給大家介紹了關(guān)于在IDEA中配置eslint和prettier的相關(guān)資料,需要的朋友可以參考下2024-02-02vue中實(shí)現(xiàn)在外部調(diào)用methods的方法(推薦)
下面小編就為大家分享一篇vue中實(shí)現(xiàn)在外部調(diào)用methods的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02Vue3通過(guò)JSON渲染ElementPlus表單的流程步驟
這篇文章主要介紹了Vue3通過(guò)JSON渲染ElementPlus表單的流程步驟,文中通過(guò)代碼示例和圖文給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-10-10