使用脚手架搭建项目
安装
打开终端,切换到一个经常使用的项目目录,如
cd ~/projects
全局安装 vue-cli
npm install -g vue-cli
使用 vue-cli 创建 基于webpack模板的新项目
vue init webpack vue-evernote-client









使用默认的 npm 作为包管理工具,直接按回车
等待安装,安装完毕后
进入当前项目目录
cd vue-evernote-client
安装依赖
npm install

启动server
npm run dev
浏览器打开 http://localhost:8080 ,即可看到搭建好的初始界面

可以使用编辑器打开 vue-evernote-client 这个目录,阅读代码,目前我们暂时只需要关注 src 这个目录即可。
|-- build // 项目构建(webpack)相关代码
| |-- build.js // 生产环境构建代码
| |-- check-version.js // 检查node、npm等版本
| |-- dev-client.js // 热重载相关
| |-- dev-server.js // 构建本地服务器
| |-- utils.js // 构建工具相关
| |-- webpack.base.conf.js // webpack基础配置
| |-- webpack.dev.conf.js // webpack开发环境配置
| |-- webpack.prod.conf.js // webpack生产环境配置
|-- config // 项目开发环境配置
| |-- dev.env.js // 开发环境变量
| |-- index.js // 项目一些配置变量
| |-- prod.env.js // 生产环境变量
| |-- test.env.js // 测试环境变量
|-- src // 源码目录
| |-- components // vue公共组件
| |-- apis // 请求接口
| |--utils // 工具库
| |--styles // 全局样式
| |-- views // 业务组件
| |-- store // vuex的状态管理
| |-- App.vue // 页面入口文件
| |-- main.js // 程序入口文件,加载各种公共组件
|-- static //不打包资源 静态文件,比如一些图片,json数据等
| |-- data // 群聊分析得到的数据用于数据可视化
|-- .babelrc // ES6语法编译配置
|-- .editorconfig // 定义代码格式
|-- .gitignore // git上传需要忽略的文件格式
|-- README.md // 项目说明
|-- favicon.ico
|-- index.html // 入口页面
|-- package.json // 项目基本信息
api 和 views
简单截取一下公司后台项目,现在后台大概有四五十个 api 模块

如图可见模块有很多,而且随着业务的迭代,模块还会会越来越多。 所以这里建议根据业务模块来划分 views,并且 将views 和 api 两个模块一一对应,从而方便维护。如下图:

components
这里的 components 放置的都是全局公用的一些组件,如上传组件,富文本等等。一些页面级的组件建议还是放在各自views文件下,方便管理。如图:

store
这里我个人建议不要为了用 vuex 而用 vuex。就拿我司的后台项目来说,它虽然比较庞大,几十个业务模块,几十种权限,但业务之间的耦合度是很低的,文章模块和评论模块几乎是俩个独立的东西,所以根本没有必要使用 vuex 来存储data,每个页面里存放自己的 data 就行。当然有些数据还是需要用 vuex 来统一管理的,如登录token,用户信息,或者是一些全局个人偏好设置等,还是用vuex管理更加的方便,具体当然还是要结合自己的业务场景的。总之还是那句话,不要为了用vuex而用vuex!
ESLint
不管是多人合作还是个人项目,代码规范是很重要的。这样做不仅可以很大程度地避免基本语法错误,也保证了代码的可读性。如果在使用vue-cli搭建项目的时候开启了 eslint(推荐),可以安装eslint自定修复插件
1.安装eslint 自动修复工具 npm i eslint-plugin-vuefix@latest --save-dev
2. 执行eslint 修复命令 node_modules/.bin/eslint src --fix
less
- 基于CSS的另一种语言
- 通过工具编译成CSS
- 添加了很多CSS不具备的特性
- 能提升CSS文件的组织
less使用js编写,但是稍繁琐,功能较简单,可以直接引入。sass使用vb编写
- 嵌套 反映层级和约束
- 变量和计算 减少重复代码
- Extend和Mixin代码片段
- 循环 适用于复杂有规律的样式
- import Css文件模块化
less的使用
npm i less less-loader --save

网友评论