Dean Front-end Dev Engineer

Vue 重要知识点列表

2018-03-25

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

Comments

Content