前言: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>