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

Vue3的命名规范

命名规范

一、组件命名规范

  1. 单文件组件命名
    • 使用 PascalCase(大驼峰) 命名法,如 UserProfile.vue

    • 必须由 2-3 个单词组成,避免与 HTML 原生标签冲突(如 <header><AppHeader>

    • 文件名与组件名严格一致,便于代码追踪

  2. 全局注册命名
    • 全局组件推荐使用 PascalCase,保持与单文件命名一致

    • 示例:app.component('UserProfile', UserProfile)

  3. 局部注册命名
    • DOM 模板中优先使用 kebab-case(短横线分隔),如 <user-profile>

    • JavaScript 中仍使用 PascalCase 导入

  4. 命名语义化原则
    • 名称需体现功能(如 SearchInputImageGallery

    • 基础组件可添加统一前缀(如 BaseButtonAppHeader

    • 父子组件采用关联前缀(如 TodoListTodoListItem


二、Props 命名规范

  1. 声明方式
    • JavaScript 中采用 camelCase(小驼峰),如 userName

    • 模板中使用 kebab-case 转换,如 <user-profile user-name="value">

  2. 类型与验证
    • 必须显式声明类型和验证规则:

    props: {status: {type: String,required: true,validator: (v) => ['success', 'error'].includes(v)}
    }
    

三、事件命名规范

  1. 命名规则
    • 使用 kebab-case,遵循 动词-名词 结构(如 update:user-info

    • 状态变更事件建议用 名词-动词(如 state-change

  2. 声明方式
    • 推荐通过 defineEmits 显式定义参数类型:

    const emit = defineEmits({'search': (query: string) => !!query.trim()
    })
    

四、组合式 API 规范

  1. 可组合函数命名
    • 以 use 开头,采用 PascalCase(如 useFetchuseCounter

    • 返回多个值时可使用复数形式(如 useFormValidators

  2. 响应式变量
    • 基础类型用 ref,对象类型用 reactive

    • 解构时通过 toRefs 保持响应性


五、代码风格规范

  1. 变量与方法
    • 使用 camelCase 命名(如 currentPagegetUserInfo

    • 避免单个单词命名(如 datauserData

  2. 模板指令
    v-for 必须绑定唯一 key

    • 禁止 v-ifv-for 同级使用,优先用计算属性过滤数据

  3. 样式命名
    • CSS 类名使用 BEM 规范(如 .user-profile__title--active

    • 组件样式添加 scoped 属性隔离作用域


六、路由与状态管理

  1. 路由命名
    • 路径参数用 kebab-case(如 /user/:user-id

    • 路由配置采用 camelCase(如 userProfile

  2. 状态模块
    • Pinia/Vuex 模块名使用 camelCase(如 userStore

    • 复杂状态拆分到独立模块(如 cartStoreauthStore


七、其他核心原则

原则说明示例/参考
一致性项目内统一命名风格,可通过 ESLint 自动检查配置 .eslintrc
可读性避免缩写(如 UsrUser),优先完整单词Dashboard vs Dash
类型安全组合式 API 中优先使用 TypeScript 类型标注interface User
性能优化大型列表使用 v-virtual-scroll,避免不必要的响应式数据虚拟滚动方案

总结建议

  1. 工具集成
    通过 Volar + ESLint + Prettier 实现自动化规范检查
  2. 文档对齐
    复杂组件需编写 .md 文档说明 Props/Events 用法
  3. 团队协作
    使用 .editorconfig 统一编辑器配置,减少格式冲突

相关文章:

  • Python60日基础学习打卡D12【虫豸版】
  • 文档外发安全:企业数据防护的最后一道防线
  • Odoo 18 安全组与访问权限管理指南
  • 015枚举之滑动窗口——算法备赛
  • Matlab 单机无穷大系统故障
  • 什么是户用光储一体化,开启家庭用电新时代、智能电表 | 新能源发电系统配套电表 | 家用储能电表 | 防逆流监测电表
  • 【日撸 Java 三百行】Day 13(链表)
  • 关系实验课--笛卡尔积
  • Blueprints - Gameplay Message Subsystem
  • 274、H指数
  • PyCharm历史版本下载说明
  • 软件安全之内存泄漏
  • 电商平台一站式网络安全架构设计指南
  • 从PNG到矢量图:星云智控Logo的商用矢量转换全解析-优雅草卓伊凡
  • 掌握函数(二)嵌套使用与链式访问以及函数的声明与定义
  • 基于 Nexus 在 Dockerfile 配置 yum, conda, pip 仓库的方法和参考
  • 1.4 无穷小与无穷大
  • 计算机网络核心技术解析:从基础架构到应用实践
  • 当用户在浏览器输入一个 URL 并访问服务器时, 这个请求是如何到达对应的 Servlet 的?
  • 1.1 文章简介
  • 日本广岛大学一处拆迁工地发现疑似未爆弹
  • 最高降九成!特朗普签署降药价行政令落地存疑,多家跨国药企股价收涨
  • 美元指数上涨超1%重返101上方,创1个月新高
  • 来伊份深夜回应“粽子中吃出疑似创可贴”:拿到实物后会查明原因
  • 国内首例侵入式脑机接口系统前瞻性临床试验:受试者已能用意念玩游戏
  • 虚假认定实质性重组、高估不良债权价值,原中国华融资产重庆分公司被罚180万元