当前位置: 首页 > news >正文

Vue3命名规范指南

在 Vue 3 中,遵循一致的命名规范可以提高代码的可读性和维护性。以下是常见的命名规范和实践建议:


1. 组件命名

  • PascalCase(大驼峰式)
    单文件组件(.vue 文件)和组件引用时推荐使用 PascalCase,便于区分原生 HTML 元素。

    vue

    <!-- 文件名: MyComponent.vue -->
    <template>
      <div>My Component</div>
    </template>
    
    <!-- 使用 -->
    <MyComponent />
  • kebab-case(短横线分隔式)
    在 DOM 模板(如 HTML 文件)中,由于 HTML 不区分大小写,建议使用 kebab-case:

    html

    <my-component></my-component>

    运行 HTML


2. Props 命名

  • camelCase(小驼峰式)
    Props 在 JavaScript 中定义时使用 camelCase,在模板中转换为 kebab-case:

    js

    // 组件定义
    props: ['myPropName'];
    
    // 使用
    <MyComponent my-prop-name="value" />

3. 自定义事件

  • kebab-case
    事件名推荐使用 kebab-case(HTML 属性大小写不敏感):

    js

    // 触发事件
    emit('my-event');
    
    // 监听事件
    <MyComponent @my-event="handleEvent" />

4. 生命周期钩子

  • camelCase
    所有 Vue 生命周期钩子均为 camelCase(如 mountedbeforeUpdate)。

    js

    export default {
      mounted() {
        // ...
      },
    };

5. 组合式 API(Composables)

  • 以 use 开头
    可组合函数通常以 use 开头,遵循 React 社区的约定(如 useFetchuseCounter)。

    js

    // useCounter.js
    export function useCounter() {
      // ...
    }

6. 变量与方法

  • camelCase
    变量、方法、计算属性等使用 camelCase:

    js

    const myData = ref(0);
    function handleClick() { /* ... */ }
    const computedValue = computed(() => /* ... */);

7. 自定义指令

  • kebab-case
    自定义指令名称使用 kebab-case(如 v-focus):

    js

    app.directive('focus', {
      mounted(el) {
        el.focus();
      },
    });

8. 插槽(Slots)

  • kebab-case
    插槽名称推荐使用 kebab-case:

    vue

    <!-- 定义插槽 -->
    <slot name="header-content"></slot>
    
    <!-- 使用插槽 -->
    <template v-slot:header-content>...</template>

9. 路由与状态管理

  • Vue Router

    • 路由命名使用 camelCase 或 kebab-case(如 userProfile 或 user-profile)。

  • Pinia/Vuex

    • Store 模块命名使用 camelCase(如 userStore)。


规范总结

类型推荐格式示例
组件文件名PascalCaseUserProfile.vue
PropscamelCaseuserName
自定义事件kebab-caseupdate:user-name
组合式函数use + PascalCaseuseFetchData
自定义指令kebab-casev-custom-directive

注意事项

  1. HTML 大小写不敏感:在 DOM 模板中,组件名、Props、事件名等需使用 kebab-case。

  2. 一致性:项目团队应统一规范,可通过 ESLint 等工具自动检查。

  3. 与框架约定对齐:如 Vue Router 的命名路由、Pinia 的 Store 命名等,需遵循各自文档的建议。

遵循这些规范能让代码更清晰,减少因命名导致的潜在问题。

http://www.dtcms.com/a/110749.html

相关文章:

  • 数字内容体验进阶优化策略
  • OP2177运算放大器:高性能模拟信号处理的关键元件
  • 使用el-tab 实现两个tab切换
  • MCP协议java开发的servers,已开源
  • Linux 基础入门指南:用户管理、基本命令(一)
  • Golang标准库——runtime
  • Linux命令-iotop
  • 【Java】网络编程
  • Python爬虫教程008:BeautifulSoup库的基本介绍
  • jQuery 遍历
  • 浙江大学朱霖潮研究员:《人工智能重塑科学与工程研究》以蛋白质结构预测为例|附PPT下载方法
  • Unity网络开发基础 (3) Socket入门 TCP同步连接 与 简单封装练习
  • java_高并发之SpringBoot中实现一个通用Excel导出功能
  • 适配 AGP8.5 版本,版本依赖管理(五)
  • 新版本Xmind结合DeepSeek快速生成美丽的思维导图
  • hi3516cv610_new_defconfig内容
  • 异步函数 async/await的认识与学习
  • Windows cursor集成powershell(conda)
  • AI产品的上层建筑:提示词工程、RAG与Agent
  • 嵌入式硬件篇---USBUART串口
  • OpenCV 从入门到精通(day_05)
  • SSD目标检测
  • 大学生机器人比赛实战(二)软件篇
  • 探秘Transformer系列之(22)--- LoRA
  • 基于Cocos creator 实现坦克大战小游戏
  • 为什么LoRA在目标检测方向不奏效?
  • 颠覆传统医疗!基于DeepSeek的智能化导尿管技术解析与实
  • Java 8 到 Java 21 系列之 Optional 类型:优雅地处理空值(Java 8)
  • 【数据库】达梦arm64安装
  • Linux Command nmap 网络扫描