Vue2.0押题

154 阅读2分钟

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 一个容器
    2status 用来存放/读取状态
    3、actions 用于在存入状态前处理一些异步请求 但是它提交的是mutations,不是直接变更状态
    4、mutations 用于同步提交状态
    5、getter 整合status使获取更加方便
    5module 用于给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算法

双端交叉对比