1、vue-cli
vue-cli 是 vue 脚手架,帮我们自动构建基本的项目结构。
//安装webpack
cnpm i webpack -g
安装vue-cli
cnpm i vue-cli -g
//生成详细项目模板
vue init webpack
//生成简单项目模板、比上面那个少了 eslint 和 单元测试
vue init webpack-simple
生成模板后。再通过下面命令,安装相关依赖包
cnpm install
2、vue-router
vue-router 通过 ajax 局部更新页面,但又变化url地址,方便单页应用(SPA)等书签保存什么的。
router.push({path:’home’}); 添加一个路由,表现为切换路由,本质上往历史记录添加一个
router.replace({path:’home’}); 替换路由,也表现为切换路由,不过不会往历史记录添加
3、vuex
vuex 主要把整合,简化组件之间的通讯。也称为状态管理。
cnpm i vuex -D
vuex 主要用于中大型应用。当项目很简单的时候,可以声明一个全局 Vue 实例来储存所有事件就可以了。
let bus = new Vue();
//触发组件A中的事件
bus.$emit('id-selected', 1);
//在组件B创建的钩子中监听事件
bus.$on('id-selectoed',id => {
})
4、axios
axios 异步的方式向服务器发送请求。
axios 不支持 jsonp ,如果需要,可以单独引入 jsonp。
安装
cnpm i axios -D
cnpm i vue-axios -D
main.js
import Vue from 'vue'
import axios from 'axios'
import VueAxios from 'vue-axios'
Vue.use(VueAxios, axios)
5、vue2-animate.css
结合 <transition>
、<transition-group>
组件使用。一个简单易用的 CSS3 动画库。
6、父子组件通讯
子组件通过 v-bind
绑定父组件的数据,然后再通过设置 props
接收参数。
子组件通过 $emit(costomEvent, data)
;触发自定义事件,然后在父组件的对应标签中,再通过@costomEvent接收数据。
一般用 vuex 进行全局的数据通讯,而有些子组件中的数据不需要传递到全局,例如自定义的公共组件,就可以采用这种方式传到父组件,再由父组件决定如果操作。
7、slot 组件插槽
你定义了一个组件 <my-component> </my-component>
,但你又希望在使用组件时,再临时插入数据,就需要在定义组件的时候设置 <slot></slot>
让你要添加的数据插入的组件的对应位置。多个slot 时,给 slot 添加 name
8、动态组件 & router
动态组件,就是通过 <component>
组件上的 :is
属性的变化来切换组件,url 地址没变化。
router,就是通过点击菜单动态局部刷新页面,不跳转页面,但url地址会根据路由配置而有变化。
// 动态视图
<component :is="currentView" keep-alive></component>
9、UI 组件
elementUI PC端
MintUI 移动端
安装
cnpm i element-ui -D
如果想只引入部分,还需要安装插件
cnpm i babel-plugin-component -D
然后在入口文件 main.js
中引入
import Vue from 'vue';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);
MintUI 同理。
10、自定义组件
一般定义一个组件,想添加一个use方式来使用时。需要配置一下 install。
import LoadingComponent from './loading.vue'
const Loading = {
install: function (Vue) {
Vue.component('loading', LoadingComponent);
}
}
export default Loading
11、构建一个项目的常规流程
cnpm i webpack -g
cnpm i vue-cli -g
脚手架构建基本目录
vue init webpack
安装依赖(顺便装上vue-router)
cnpm install
sass
cnpm i sass-loader node-sass -D
vuex
cnpm i vuex -D
axios
cnpm i axios vue-axios -D
element-ui
cnpm i element-ui -D
cnpm i babel-plugin-component -D
munt-ui
cnpm i mint-ui -D
cnpm i babel-plugin-component -D