最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue項目命名規(guī)范指南分享

 更新時間:2025年07月31日 15:51:24   作者:SanMu三木  
本文提供Vue3+Pinia+VueRouter項目命名規(guī)范,涵蓋組件、路由、狀態(tài)等命名風格,推薦使用ESLint和Prettier工具,統(tǒng)一風格提升協(xié)作效率

Vue項目命名規(guī)范指南(適用于 Vue 3 + Pinia + Vue Router)

目的:統(tǒng)一命名風格,提升可讀性、可維護性和團隊協(xié)作效率。

一、通用原則

類型命名風格示例
變量camelCaseuserName, isLoading
常量UPPER_SNAKE_CASEMAX_RETRY_COUNT, DEFAULT_TIMEOUT
函數(shù)/方法camelCasefetchData, validateForm
類 / 組件 / 枚舉 / 路由 namePascalCaseUserProfile, ErrorBoundary
自定義指令(Vue)kebab-casev-focus, v-tooltip
URL 路徑kebab-case/user-profile, /settings/account

二、組件相關命名規(guī)范

1. 組件文件名

  • 使用 PascalCaseKebabCase
  • 推薦使用 PascalCase,便于在 JS 中直接引用。
components/
  UserProfile.vue        ? 推薦
  userProfile.vue        ? 不推薦(容易與變量混淆)
  user-profile.vue       ? 在模板中使用時推薦

2. 組件注冊與使用

  • 注冊時使用 PascalCase:
import UserProfile from './components/UserProfile.vue'
  • 模板中使用 kebab-case:
<template>
  <user-profile :user="user" />
</template>

3. Props 命名(組件間傳參)

  • 使用 camelCase(JS 中),模板中用 kebab-case。
  • 避免縮寫(除非是通用縮寫如 id, url)。
props: {
  userName: String,
  isActive: Boolean,
  userId: Number
}
<template>
  <UserCard :user-name="name" :is-active="true" />
</template>

三、Vue Router 相關命名規(guī)范

1. 路由路徑(URL)

  • 使用 kebab-case,清晰表達資源結構。
{
  path: '/user-profile',
  name: 'UserProfile',
  component: () => import('../views/UserProfile.vue')
}

2. 路由名稱(name)

  • 使用 PascalCase,與組件名保持一致。
name: 'UserProfile'

3. 動態(tài)參數(shù)命名

  • 參數(shù)名使用 kebab-case(URL),JS 中訪問使用 camelCase。
path: '/user/:user_id' // URL 中使用
$route.params.userId    // JS 中自動轉為 camelCase

四、Pinia 狀態(tài)管理命名規(guī)范

1. Store 文件名

  • 使用小駝峰命名,以 .store.js.store.ts 結尾。
stores/
  userStore.js
  cartStore.js

2. State 屬性命名

  • 使用 camelCase,語義明確。
state: () => ({
  user: null,
  isLoading: false,
  activeTab: 'dashboard'
})

3. Actions 命名

  • 動詞開頭 + 名詞,表示動作。
actions: {
  async fetchUser(userId) {},
  updateUser(userData) {}
}

4. Getters 命名

  • 名詞或形容詞為主,表示派生狀態(tài)。
getters: {
  isLoggedIn: (state) => !!state.user,
  fullName: (state) => `${state.firstName} ${state.lastName}`
}

五、變量與函數(shù)命名規(guī)范

1. 變量命名

  • 使用 camelCase。
  • 避免模糊命名(如 data, info),應具體說明用途。
let currentUser = null;
let loadingCount = 0;

2. 函數(shù)命名

  • 動詞開頭,描述行為。
function validateForm() {}
function submitData(data) {}

3. 布爾類型變量命名

  • is, has, should 開頭。
let isActive = false;
let hasPermission = true;

六、常量命名規(guī)范

  • 使用全大寫 + 下劃線分隔。
  • 通常用于配置項、枚舉、固定值等。
const MAX_RETRY_COUNT = 3;
const USER_ROLES = ['admin', 'editor', 'viewer'];

七、事件命名規(guī)范(Vue 組件通信)

  • 使用 kebab-case,在子組件中 $emit 時使用:
this.$emit('update:loading', false);
  • 在父組件中監(jiān)聽:
<template>
  <ChildComponent @update:loading="handleLoadingChange" />
</template>

八、自定義指令命名規(guī)范

  • 使用 kebab-case,符合 HTML 規(guī)范。
app.directive('focus', {
  mounted(el) {
    el.focus();
  }
});

使用方式:

<input v-focus />

九、樣式類命名建議(可選)

  • 推薦使用 BEM 風格或 CSS-in-JS 工具。
  • 如果使用 SCSS/CSS,建議命名清晰:
.user-card {}
.user-card__header {}
.user-card--active {}

十、模塊化命名建議

如果你的項目采用模塊化結構(如多個 store、路由模塊、功能模塊),建議在命名中加入上下文前綴。

示例:

類型示例
StoreuserStore.js, productStore.js
路由模塊userRoutes.js, orderRoutes.js
組件UserList.vue, UserDetail.vue

十一、附錄:命名風格總結表

類型命名風格示例
組件名PascalCaseUserProfile.vue
模板標簽kebab-case<user-profile />
PropscamelCase(JS) / kebab-case(模板)userName, user-name
路由 namePascalCase'UserProfile'
路由路徑kebab-case/user-profile
動態(tài)路由參數(shù)kebab-case(URL) / camelCase(JS):user_id → params.userId
變量camelCaseuserName, isLoading
常量UPPER_SNAKE_CASEMAX_RETRY_COUNT
函數(shù)camelCasefetchData, submitForm
布爾變量is/has/should + 描述isActive, hasPermission
Pinia statecamelCaseuser, cartItems
Pinia actions動詞 + 名詞fetchUser, addToCart
Pinia getters名詞/形容詞isLoggedIn, totalPrice
自定義指令kebab-casev-focus

十二、工具建議(可選)

總結

一個良好的命名規(guī)范能顯著提升代碼質(zhì)量與團隊協(xié)作效率。建議將此文檔納入項目初期的技術規(guī)范文檔,并結合 ESLint/Prettier 工具進行自動化檢查。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 一文詳解Vue中加上key后發(fā)生什么

    一文詳解Vue中加上key后發(fā)生什么

    本文主要介紹了一文詳解Vue中加上key后發(fā)生什么,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • Vue + OpenLayers 快速入門學習教程

    Vue + OpenLayers 快速入門學習教程

    大家都知道使用 Openlayers可以很靈活自由的做出各種地圖和空間數(shù)據(jù)的展示。而且這個框架是完全免費和開源的,本文記錄下 Vue 使用 OpenLayers 入門,使用 OpenLayers 創(chuàng)建地圖組件的相關知識,需要的朋友一起學習下吧
    2021-09-09
  • Vue2.0使用嵌套路由實現(xiàn)頁面內(nèi)容切換/公用一級菜單控制頁面內(nèi)容切換(推薦)

    Vue2.0使用嵌套路由實現(xiàn)頁面內(nèi)容切換/公用一級菜單控制頁面內(nèi)容切換(推薦)

    這篇文章主要介紹了Vue2.0使用嵌套路由實現(xiàn)頁面內(nèi)容切換/公用一級菜單控制頁面內(nèi)容切換,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • Vue3 實現(xiàn)文件上傳功能

    Vue3 實現(xiàn)文件上傳功能

    在Vue3中實現(xiàn)文件上傳功能,你可以使用多種方法,包括使用原生的HTML <input type="file">元素,或者使用第三方庫如?axios和vue-axios來處理文件上傳,本文給大家介紹Vue3 實現(xiàn)文件上傳功能,感興趣的朋友一起看看吧
    2025-07-07
  • el-table樹形數(shù)據(jù)序號排序處理方案

    el-table樹形數(shù)據(jù)序號排序處理方案

    這篇文章主要介紹了el-table樹形數(shù)據(jù)序號排序處理方案,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-03-03
  • Vue2.x中的父組件傳遞數(shù)據(jù)至子組件的方法

    Vue2.x中的父組件傳遞數(shù)據(jù)至子組件的方法

    這篇文章主要介紹了Vue2.x中的父組件數(shù)據(jù)傳遞至子組件的方法,需要的朋友可以參考下
    2017-05-05
  • 詳解Vue.js 可拖放文本框組件的使用

    詳解Vue.js 可拖放文本框組件的使用

    這篇文章主要介紹了詳解Vue.js 可拖放文本框組件的相關資料,幫助大家更好的理解和學習使用vue框架,感興趣的朋友可以了解下
    2021-03-03
  • vue-seamless-scroll無縫滾動組件使用方法詳解

    vue-seamless-scroll無縫滾動組件使用方法詳解

    這篇文章主要為大家詳細介紹了vue-seamless-scroll無縫滾動組件的使用方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 使用Vue與Fabric.js開發(fā)一個圖片標注工具

    使用Vue與Fabric.js開發(fā)一個圖片標注工具

    在現(xiàn)代的Web應用開發(fā)中,能夠對圖片進行標注是一項非常實用的功能,無論是在項目管理、圖像處理還是教育領域,這種功能都能極大提升用戶體驗,本文將介紹如何利用Vue框架結合Fabric.js庫來構建一個具有矩形框選、箭頭繪制和文本添加功能的圖片標注工具,需要的朋友可以參考下
    2026-02-02
  • Vue跨域請求問題解決方案過程解析

    Vue跨域請求問題解決方案過程解析

    這篇文章主要介紹了Vue跨域請求問題解決方案過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08

最新評論

英吉沙县| 无极县| 建昌县| 六安市| 天全县| 江川县| 津南区| 海口市| 宣武区| 弥勒县| 光泽县| 湖州市| 黑河市| 达尔| 宜兰市| 巴青县| 龙门县| 万载县| 建瓯市| 泊头市| 安康市| 余姚市| 玉田县| 威海市| 文水县| 兴化市| 桂阳县| 洪雅县| 澎湖县| 海阳市| 化州市| 沐川县| 留坝县| 都江堰市| 济源市| 罗平县| 精河县| 大英县| 白城市| 镇赉县| 宁武县|