记录前端关于vue的面试题

1.vue生命周期:
创建前后 beforeCreate/created
在beforeCreate 阶段,vue实例的挂载元素el和数据对象data都为undefined,还未初始化。在created阶段,vue实例的数据对象有了,el还没有。
载入前后 beforeMount/mounted
在beforeMount阶段,vue实例的$el和data都初始化了,但还是挂载之前未虚拟的DOM节点,data尚未替换。
在mounted阶段,vue实例挂载完成,data成功渲染。
更新前后 beforeUpdate/updated
当data变化时,会触发beforeUpdate和updated方法。这两个不常用,不推荐使用。
销毁前后beforeDestory/destoryed
beforeDestory是在vue实例销毁前触发,一般在这里要通过removeEventListener解除手动绑定的事件。实例销毁后,触发的destroyed。
2.vuex
1)vue中的状态管理模式,通常称之为状态管理器,符合单向数据流的思想,充分体现了高内聚,低耦合的编程思想
2)安装vuex,创建唯一数据源store,添加模块modules,按模块设计每一个功能的状态管理,内涵state、getters,actions,mutations,由组件内部派发action,action异步请求数据,请求成功之后提交mutation,更改数据,映射到视图,组件更新。
3)在你认为需要的地方:单页面应用, 多个视图依赖于同一状态, 来自不同视图的行为需要变更同一状态
3.vue数据的双向绑定
采用数据劫持 结合 发布者-订阅者模式 的方式,通过Object.defineProperty( ) 来劫持各个属性的 setter,getter ,在数据变动时 发布消息给订阅者,触发相应的监听回调。
4.关于this指向问题
箭头函数可以捕获其所在上下文的this值
call 和 apply 的区别在于,call 的第二个及后续参数是一个参数列表,apply 的第二个参数是数组。参数列表和参数数组都将作为函数的参数进行执行。
bind 方法会创建一个新函数,新函数的 this 会永久的指向 bind 传入的第一个参数。
同 bind 一样,箭头函数也很“顽固”,我们无法通过 call 和 apply 来改变 this 的指向。
5.axios
记录前端关于vue的面试题_第1张图片
promise:就是用同步的方式写异步的代码,用来解决回调问题。
是一个构造函数,自己身上有all、reject、resolve这几个眼熟的方法,原型上有then、catch等同样很眼熟的方法。
Promise的构造函数接收一个参数,是函数,并且传入两个参数:resolve,reject,分别表示异步操作执行成功后的回调函数和异步操作执行失败后的回调函数。其实这里用“成功”和“失败”来描述并不准确,按照标准来讲,resolve是将Promise的状态置为fullfiled,reject是将Promise的状态置为rejected。

你可能感兴趣的:(面试题)