1.关于Vuexvue
五大核心:vue-router
state => 基本数据vuex
getters => 从基本数据派生的数据npm
mutations => 提交更改数据的方法,同步!缓存
actions => 像一个装饰器,包裹mutations,使之能够异步。app
modules [ˈmɒdjuːlz] => 模块化Vuex异步
原理:ide
经过官方文档咱们知道,每个vue插件都须要有一个公开的install方法,模块化
vuex也不例外。其代码比较简单,调用了一下applyMixin方法,函数
该方法主要做用就是在全部组件的beforeCreate生命周期注入了设置this.$store这样一个对象,
由于比较简单,这里再也不详细介绍代码了,你们本身读一读编能很容易理解。
使用:
1.利用npm包管理工具,进行安装 vuex
2.新建一个store文件夹(这个不是必须的),并在文件夹下新建store.js文件,文件中引入咱们的vue和vuex
3.使用咱们vuex,引入以后用Vue.use进行引用
4.在main.js 中引入新建的vuex文件
5.再而后 , 在实例化 Vue对象时加入 store 对象
场景有:单页应用中,组件之间的状态、音乐播放、登陆状态、加入购物车
2. vue生命周期?
从开始建立、初始化数据、编译模板、挂载Dom、--渲染、更新---渲染、卸载等一系列过程 就是生命周期
beforeCreate:组件实例被建立之初
created:组件实例化,真实Dom尚未生成,$el还不可用
beforemount:在挂载前被调用,相关的render函数首次被调用
mounted:el被新建立的vm.$el替换
beforeUpdate:组件数据更新以前调用、虚拟Dom打补丁以前
Updated:组件数据更新
activited:keep-alive专属,组件被销毁时调用
deadactivated:keep-alive专属,组件被销毁时调用
beforeDestory:组件销毁前调用
desoryed:组件销毁后调用
3.异步请求适合在哪一个生命周期调用
官方给出的是mounted,可是也能够在created
4.关于keep-alive组件?
keep-alive解决“页面缓存”需求(好比跳转到详情页回来时列表页滚动条的深度依旧是原来的位置)
vue-router不保存切换的状态,它进行push或者replace时,旧组件会被销毁,新组件会被创建
走一遍完整的生命周期
keep-alive是个抽象组件(功能型组件)实际上不会被渲染在Dom树中,他的做用是内存中缓存组件
缓存一般出如今页面切换时,因此常和router-view一块儿出现
5. vue组件通讯?
1.props自上而下传递、$emit+v-on:向上传递
2.event.bus:经过bus进行信息的发布与订阅
bus.$emit("change",this.msg)
bus.$on("change",data=>{ this.info=data })
3.vuex:对全局资源进行管理
4.provide/inject:容许一个组件向全部组件注入依赖