基于 vue-cli 的 Vue js 单页应用项目模板

介绍

https://github.com/zhaotoday/vue.js#技术栈

基于 vue-cli 的 Vue js 单页应用项目模板,在 vue-cli 基础上做了一些合理的修改和增强。功能包括:调试、构建、代码规范校验、单元测试、国际化等。

技术栈

Vue、Webpack、ES6、vue-router、Vuex、SASS、PostCSS 等。

参考

使用

# 下载代码
$ git clone https://github.com/zhaotoday/vue.js.git

# 安装依赖
$ npm install

# 开发调试
$ npm run dev

# 构建
$ npm run build

# 执行单元测试
$ npm run unit

# 执行 e2e 测试
$ npm run e2e

# 执行所有测试
$ npm test

对 vue-cli 的一些修改和增强

1. 将模板文件 index.html 从根目录移至 src 目录,将构建文件 index.html 移至根目录

理由:原 vue-cli 构建后的 index.html 存放在 dist 目录下。但通常,我们需要把整个项目提交到 git/svn,然后部署,这时候访问的默认首页需要是构建后的 index.html。

2. 提供 sass 支持
# 安装 node-sass、sass-loader
$ npm install --save-dev node-sass sass-loader
<!-- 引入样式 -->
<style lang="scss" scoped src="./theme/styles/index.scss">
</style>
3. 用 axios 作为 ajax 方案

官方已经不推荐 vue-resource 作为 ajax 方案,请用 axios 代替。

# 安装 axios
$ npm install --save axios

链接链接

4. 添加 polyfill

按需引入 polyfill,提高浏览器兼容性。

# 安装 core-js
$ npm install --save core-js

polyfill 在 /src/utils/polyfill.js 文件中引入:

import 'core-js/es6/promise'
5. 用 Vuex 做状态管理
# 安装 vuex
$ npm install --save vuex

链接

项目结构

|-- build                            // Webpack 项目构建
|-- config                           // 项目开发环境配置
|-- src                              // 源码目录
|   |-- app                          // 业务代码
|       |-- Articles                 // 文章业务模块
|       |-- Home                     // 首页
|       |-- Layout                   // 页面布局结构(除登录页外)
|       |-- Login                    // 登录页
|       |-- NotFound                 // 404 页
|       |-- Root                     // 根页面(可以在这里添加全局样式等)
|       |-- Unauthorized             // 未授权页面(在开发权限相关系统时有用)
|   |-- components                   // 公共组件
|   |-- i18n                         // 全局国际化
|   |-- models                       // 数据模型(主要在 store 中用到)
|   |-- router                       // 路由配置
|       |-- routes                   // 各业务模块路由配置
|   |-- store                        // Vuex 状态管理
|       |-- actions.js               // 根级别的 actions
|       |-- getters.js               // 根级别的 getters
|       |-- mutations.js             // 根级别的 mutations
|       |-- types.js                 // 根级别的 mutation types
|       |-- modules                  // 各业务模块的局部状态管理
|           |-- articles             // 文章业务模块状态管理
|   |-- utils                        // 工具集合
|       |-- helpers                  // 帮助函数集合
|       |-- auth.js                  // 权限相关
|       |-- env.js                   // 环境配置类
|       |-- consts.js                // 常量配置
|       |-- i18n.js                  // 国际化类
|       |-- init.js                  // 初始化
|       |-- polyfill.js              // polyfill
|       |-- rest.js                  // RESTful 请求类
|   |-- App.vue                      // 页面入口
|   |-- main.js                      // 程序入口,加载各种公共组件
|-- static                           // 静态文件,如:图片、JSON 数据等
|-- .babelrc                         // babel-loader 配置
|-- .editorconfig                    // 定义代码格式
|-- package.json                     // 项目基本信息

公用组件规范

公用组件放在 /src/components 下。

|-- src                              // 源码目录
|   |-- components                   // 公用组件
|       |-- MyComponent              // MyComponent 组件
|           |-- index.vue            // MyComponent 的入口
|           |-- theme                // MyComponent 的皮肤
|               |-- images           // MyComponent 的图片
|               |-- styles           // MyComponent 的样式
|                   |-- index.scss   // MyComponent 的样式入口
|           |-- utils                // MyComponent 的工具集合
|           |-- i18n                 // MyComponent 的国际化
|           |-- components           // MyComponent 的子组件
|               |-- ChildComponent   // MyComponent 的子组件 ChildComponent,组件规范和 MyComponent 一致 

业务组件规范

业务组件放在 /src/app 下,也就是一个页面,对应一个路由。规范和公用组件一直。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值