隔离期整理vue &&项目回顾&&webpack

262 阅读1分钟

1:如何理解vue的MVVM框架

2:如何理解vue的生命周期

  • Beforecreate

  • created

  • beforeMount

  • mounted

  • beforeUpdate

  • update

  • beforedestroy

  • destroy

3:vue如何实现响应式

4:如何实现组件通信

  • AB/BC/BD - 是父子关系

  • CD - 是兄弟关系

  • AC/AD - 是隔代关系

具体通信方式

  • 1:props/$emit(父子组件传值)

  • 2:emit/on (通过一个空的Vue实例作为中央事件总线(事件中心),用它来触发事件和监听事件,巧妙而轻量地实现了任何组件间的通信,包括父子、兄弟、跨级)

    var Event=new Vue();
    Event.$emit(事件名,数据);
    Event.$on(事件名,data => {});
  • 3:vuex
Vuex实现了一个单向数据流,在全局拥有一个State存放数据,当组件要更改State中的数据时,
必须通过Mutation进行,Mutation同时提供了订阅者模式供外部插件调用获取State数据的更新。
而当所有异步操作(常见于调用后端接口异步获取更新数据)或批量的同步操作
需要走Action,但Action也是无法直接修改State的,
还是需要通过Mutation来修改State的数据。最后,根据State的变化,渲染到视图上
vuex与localStroage的关系
vuex 是 vue 的状态管理器,存储的数据是响应式的。
但是并不会保存起来,刷新之后就回到了初始状态,
具体做法应该在vuex里数据改变的时候把数据拷贝一份保存到localStorage里面,
刷新之后,如果localStorage里有保存的数据,取出来再替换store里的state。
vuex中的具体流程以及相关方法
dispatch:操作行为触发方法,是唯一能执行action的方法
actions:操作行为处理模块
commit:状态改变提交操作方法
mutations:状态改变操作方法,由actions中的commit('mutation 名称')来触发
state:页面状态管理容器对象
getters:state对象读取方法
  • 4:parent /children

  • 5:attrs/listeners和provide/inject

5:vue-router原理

vue-router的三种模式

hash: 即地址栏URL中的 # 符号
比如这个URL:http://www.abc.com/#/hello,hash的值为#/hello.它的特点在于:hash虽然出现在URL中,但不会被包括在HTTP请求中,对后端完全没有影响,因此改变hash不会重新加载页面。

histroy:利用了HTML5 History Interface中新增的pushState()和replaceState()方法。
这两个方法应用于浏览器的历史记录栈,在当前已有的back、forward、go的基础上,它们提供了对历史记录进行修改的功能。只是当它们执行修改时,虽然改变了当前的URL,但浏览器不会即向后端发送请求。
this.$router.push({
    name: '',
    params:{id:111}
})
vue-router的钩子函数
全局钩子:beforeEach afterEach
单个路由里面的钩子:beforeEnter beforeLeave
组件路由:beforeRouteEnter beforeRouteUpdate beforeRouteLeave

6:vuex原理

7:如何理解虚拟DOM