前言:vue的本质:一切皆组件。
一、项目目录结构
├── README.md 项目介绍
├── index.html 入口页面
├── build 构建脚本目录
│ ├── build-server.js 运行本地构建服务器,可以访问构建后的页面
│ ├── build.js 生产环境构建脚本
│ ├── dev-client.js 开发服务器热重载脚本,主要用来实现开发阶段的页面自动刷新
│ ├── dev-server.js 运行本地开发服务器
│ ├── utils.js 构建相关工具方法
│ ├── webpack.base.conf.js wabpack基础配置
│ ├── webpack.dev.conf.js wabpack开发环境配置
│ └── webpack.prod.conf.js wabpack生产环境配置
├── config 项目配置
│ ├── dev.env.js 开发环境变量
│ ├── index.js 项目配置文件
│ ├── prod.env.js 生产环境变量
│ └── test.env.js 测试环境变量
├── mock mock数据目录
│ └── hello.js
├── package.json npm包配置文件,里面定义了项目的npm脚本,依赖包等信息
├── src 源码目录
│ ├── main.js 入口js文件,在此引入公共函数、公共样式、app.vue以及初始化vue实例
│ ├── app.vue 根组件,在此定义全局组件,在此调起路由
│ ├── components 公共组件目录
│ │ └── title.vue
│ ├── assets 资源目录,这里的资源会被wabpack构建
│ │ └── images
│ │ └── logo.png
│ ├── routes 前端路由
│ │ └── index.js
│ ├── store 应用级数据(state)
│ │ └── index.js
│ └── views 页面目录
│ ├── hello.vue
│ └── notfound.vue
├── static 纯静态资源,不会被wabpack构建。
└── test 测试文件目录(可删除)
└── unit 单元测试
├── index.js 项目入口文件
├── karma.conf.js karma配置文件
└── specs 单测case目录
└── Hello.spec.js
二、项目加载流程
index.html(项目入口文件) -> main.js(在此引入公共函数、公共样式、app.vue、路由以及初始化vue实例) -> app.vue(在此定义全局组件、公共函数、公共样式等) -> router/index.js(前端路由) -> helloworld.vue(单页面)
三、自定义公共函数
1.将公共函数放到目录:src/assets/scripts下的common.js中
2.在main.js导入:import common from './assets/scripts/common.js'
3.然后 Vue.prototype.$common = common
4.页面中形如右侧,直接调用即可:<el @click="$common .xFunction(xx)"></el>
四、自定义公共样式
1.将公共样式放到目录:src/assets/css下的common.css中
2.在main.js导入:import './assets/css/common.css'
五、自定义公共组件
1.全局公共组件直接写在app.vue中即可,譬如loading组件、tips组件等等。
2.单文件组件放在目录:src/components下
3.在需要使用组件的页面中引用单文件组件:import HelloWorld from '@/components/HelloWorld',然后注册组件:components: { HelloWorld }。然后就可以直接使用:<HelloWorld></HelloWorld>