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