Vue 3.0 引入了很多新的 API 和功能,同时也保留了 Vue 2.x 的很多特性。以下是一个关于 Vue 3.0 常用功能的编程标准指南纲要: 1. **项目和组件结构** - 项目目录和文件命名 - 单文件组件的结构:template, script, style 2. **组件数据** - 定义和使用 props - 定义和使用组件内部数据:`ref` 和 `reactive` - 使用 `computed` 属性 - 使用 `watch` 和 `watchEffect` 监听数据变化 3. **模板语法** - 插值:文本,HTML - 指令:v-model, v-if/v-else-if/v-else, v-show, v-for, v-bind, v-on - 过滤器和全局混入(虽然 Vue 3.0 推荐尽量避免使用,但在一些场景仍有用) 4. **组件通信** - 使用 props 和自定义事件实现父子组件通信 - 使用 `provide`/`inject` 实现祖先和后代组件通信 - 使用 event bus 进行任意组件间的通信(Vue 3.0 不再内置,但可以自行实现) - 使用 Vue 3.0 的新功能 `teleport` 进行组件内容的传输 5. **Composition API** - 使用 `setup` 函数 - 使用 `ref`, `reactive`, `computed`, `watch`, `watchEffect` - 创建和使用 composable 函数 6. **路由和状态管理** - 使用 Vue Router:定义和使用路由,导航守卫,路由元信息 - 使用 Vuex:状态定义,Getter,Mutation,Action,模块化状态 7. **与外部交互** - 使用 `axios` 或者 `fetch` 进行 HTTP 请求 - 使用 Vue 3.0 的新功能 `Suspense` 进行异步依赖处理 8. **测试和部署** - 单元测试:使用 Jest 编写和运行测试 - E2E 测试:使用 Cypress 编写和运行测试 - 部署:编译,打包,发布 1. **项目和组件结构** - 项目目录和文件命名 Vue 项目和组件的结构可以因项目需求和开发团队偏好而有所不同,但这里提供一种推荐的目录结构: ``` /my-app ├── /node_modules ├── /public │ ├── index.html │ └── favicon.ico ├── /src │ ├── /assets // 静态资源如图片、样式等 │ ├── /components // Vue 组件 │ ├── /router // Vue Router 配置 │ ├── /store // Vuex 状态管理配置 │ ├── /views // 页面级 Vue 组件 │ ├── App.vue // 根组件 │ ├── main.ts // 应用入口文件 │ ├── shims-vue.d.ts │ └── ... ├── package.json ├── babel.config.js └── ... ``` - 文件命名:对于组件文件,推荐使用 'PascalCase' 的方式命名。例如:`MyComponent.vue`。而对于其它的 .js 或 .ts 文件,推荐使用 'kebab-case' 的方式命名。例如:`my-script.ts`。 - 单文件组件的结构:template, script, style 对于单文件组件(`.vue` 文件),其内部结构通常包含三部分:`