当前位置:首页 > VUE

vue 代码规范 实现

2026-03-28 13:29:12VUE

Vue 代码规范实现

项目结构与文件命名

采用模块化组织方式,保持目录结构清晰。组件文件使用大驼峰命名(如 UserList.vue),非组件文件使用小写短横线命名(如 api-request.js)。

src/
├── components/
│   ├── BaseButton.vue
│   └── UserList/
│       ├── UserListItem.vue
│       └── index.js
├── views/
│   ├── HomeView.vue
│   └── UserDetailView.vue

组件规范

单文件组件采用 <template>, <script>, <style> 顺序。组件名称必须始终为多单词,避免与 HTML 元素冲突。

<template>
  <div class="user-card">
    <span>{{ user.name }}</span>
  </div>
</template>

<script>
export default {
  name: 'UserCard',
  props: {
    user: {
      type: Object,
      required: true
    }
  }
}
</script>

<style scoped>
.user-card {
  padding: 1rem;
}
</style>

Props 定义

始终使用对象形式声明 props,指定类型和验证规则。Boolean 类型的 prop 需要显式默认值。

vue 代码规范 实现

props: {
  status: {
    type: String,
    validator: value => ['active', 'pending', 'inactive'].includes(value)
  },
  disabled: {
    type: Boolean,
    default: false
  }
}

状态管理

优先使用 Vuex 进行全局状态管理,模块化组织 store。Mutation 类型使用常量命名。

// store/modules/user.js
const SET_USER = 'SET_USER'

export default {
  state: () => ({
    currentUser: null
  }),
  mutations: {
    [SET_USER](state, payload) {
      state.currentUser = payload
    }
  },
  actions: {
    fetchUser({ commit }, userId) {
      return api.getUser(userId).then(user => {
        commit(SET_USER, user)
      })
    }
  }
}

代码风格

配置 ESLint 和 Prettier 保证代码一致性。推荐规则:

vue 代码规范 实现

// .eslintrc.js
module.exports = {
  rules: {
    'vue/multi-word-component-names': 'error',
    'vue/require-default-prop': 'warn',
    'vue/component-tags-order': ['error', {
      order: ['template', 'script', 'style']
    }]
  }
}

性能优化

大型列表使用 v-for 时必须配合 :key。避免在模板中使用复杂表达式,优先使用计算属性。

<template>
  <ul>
    <li 
      v-for="item in filteredItems"
      :key="item.id"
    >
      {{ item.name }}
    </li>
  </ul>
</template>

<script>
export default {
  computed: {
    filteredItems() {
      return this.items.filter(item => item.isActive)
    }
  }
}
</script>

组合式 API 规范

使用 setup() 时遵循逻辑关注点分离,相关功能代码组织在一起。使用 refreactive 时保持一致性。

import { ref, computed, onMounted } from 'vue'

export default {
  setup() {
    const count = ref(0)
    const doubleCount = computed(() => count.value * 2)

    function increment() {
      count.value++
    }

    onMounted(() => {
      console.log('Component mounted')
    })

    return {
      count,
      doubleCount,
      increment
    }
  }
}

标签: 代码vue
分享给朋友:

相关文章

vue实现store

vue实现store

Vue 实现 Store 在 Vue 中,可以通过 Vuex 或 Pinia 实现全局状态管理(Store)。以下是两种主流方案的实现方法。 使用 Vuex 实现 Store Vuex 是 Vue…

vue实现flbook

vue实现flbook

Vue 实现类似 Flbook 的翻页效果 要实现类似 Flbook 的翻页效果,可以使用 Vue 结合 CSS 动画和 JavaScript 事件处理。以下是实现方法: 安装依赖 需要安装 vue…

vue实现例子

vue实现例子

以下是一些常见的 Vue 实现例子,涵盖基础功能到进阶应用场景: 基础数据绑定 使用 v-model 实现双向数据绑定: <template> <div> &l…

vue实现多线程

vue实现多线程

Vue.js 本身是单线程框架,但可以通过以下方法实现类似多线程的效果或利用浏览器多线程能力: 使用 Web Worker Web Worker 是浏览器提供的多线程 API,适合处理 CPU 密集…

vue实现引导页面

vue实现引导页面

vue实现引导页面的方法 使用Vue实现引导页面可以通过多种方式完成,以下是几种常见的方法: 使用第三方库driver.js 安装driver.js库: npm install driver.j…

vue ssr实现思路

vue ssr实现思路

Vue SSR 实现思路 Vue SSR(Server-Side Rendering)的核心目标是在服务端生成完整的 HTML 页面,提升首屏加载速度和 SEO 友好性。以下是关键实现思路: 基础架…