前端面试总结

88 阅读1分钟

React

Vue

1. 说说对vue生命周期的理解?

分为8个阶段:创建前后、挂载前后、更新前后、销毁前后。
1. 创建前后
- beforeCreat阶段:vue实例的挂载元素和数据对象都是undefined,还未初始化。
- created阶段:vue实例的数据对象有了,挂载元素为undefined,还未初始化。
2. 挂载前后
- beforeMount阶段:vue实例的挂载元素和数据对象都初始化了,挂载前为虚拟dom节点。
- mounted阶段:vue实例挂载完成。
3. 更新前后
数据发生变化,会进入更新阶段。
- beforeUpdate阶段:data数据更新了,虚拟dom节点也更新了,但是还没有渲染到页面中。
- updated阶段:页面更新完成。
4. 销毁前后
- beforeDestroy阶段:实例销毁之前调用,可用于清除计时器,事件等。
- destroyed阶段:实例销毁完成

2. 为什么vue组件中的data必须是一个函数?

对象为引用类型,当组件被复用的时候,如果data为对象,当在一个组件中修改data的时候,其他组件中的data也会被修改,
使用返回对象的函数,每次返回的都是一个新对象,引用地址不同,所以必须是一个函数。

3. 父子组件生命周期执行顺序?

加载渲染阶段:

父beforeCreate->父created->父beforeMount->子beforeCreate->子created->子beforeMount->子mounted->父mounted

更新阶段:

父beforeUpdate->子beforeUpdate->子updated->父updated

销毁阶段:

父beforeDestroy->子beforeDestroy->子destroyed->父destroyed