Vue2的生命周期钩子有哪一些,数据请求放在哪个钩子
1、Vue2的生命周期分为三个阶段
挂载阶段 - 更新阶段 - 销毁阶段
挂载阶段:beforecreate、create、beforemounted、mounted
更新阶段:beforeupdate、update
销毁阶段:beforedestroy、destroy
同时被keep-alive包裹的组件也会有两个钩子 activated 、 deactivated
组件发生错误的时候:errorcaptured
数据请求放在mounted钩子函数里 放在其他的地方不都太合适
created:SSR 也会执行一次created
mounted:在页面挂载的时候执行
update:容易造成循环发请求
destroy:都要销毁了 发个屁请求
Vue2组件间通信方式哪一些,
1、props 父组件==>子组件
2、全局事件总线 $bus 任意组件通信
3、Vuex 任意组件
4、Pubsub 插件
5、$emit() 子组件==>父组件
6、兄弟组件 EventBus
7、$attrs 爷爷组件 ==> 孙子组件 前提是父组件不要用prop接收 不然孙子组件收不到
Vuex用过吗 怎么理解
Vuex是vue.js的一个核心插件、是Vue的集中式状态管理工具
说出核心概念的名字和作用:
1、store 一个容器
2、status 用来存放/读取状态
3、actions 用于在存入状态前处理一些异步请求 但是它提交的是mutations,不是直接变更状态
4、mutations 用于同步提交状态
5、getter 整合status使获取更加方便
5、module 用于给store进行模块划分 方便维护代码
VueRouter用过吗,怎么理解
Vue2是如何实现双向绑定的
使用了数据劫持以及消息订阅发布机制来实现的
使用Object.defineProperty 对数据set get进行劫持 当数据发生变动时 发布消息给订阅者
使订阅者在收到消息后作出相应的处理
双向绑定:一般使用v-model/.sync 是v-on和v-bind的语法糖
v-bind 是 数据==>UI 数据发生变化 页面也会发生变化
v-on 是 UI ==> 数据 页面的数据发生变化 data的数据也会随之改变
v-bind是利用了Object.defineProperty 监听数据
v-on是利用了compile这个编译器 v-on绑定的属性名回去data里面匹配 如果找到与之匹配的话就会更改data中的属性
Vue的Diff算法
双端交叉对比