自己对知识的了解,留作面试用,如有错误请指正
什么是生命周期
实例从创建到销毁的过程称为生命周期,其中过程为创建实例,初始化数据,编译模板,挂载,更新数据,渲染到最后销毁。
作用
vue功能的实现是围绕其生命周期进行的,在生命周期的不同阶段调用对应的钩子函数可以实现数据管理和DOM渲染两大重要功能
简述
beforecreate:data、methods上的方法和数据都不能访问
created:实例已经创建,虽然拿不到dom元素,但是已经将数据加载进来了
beforemount:挂载前阶段,编译好了模板字符串但是还没渲染到页面中
mounted:挂载结束,用户已经可以看到渲染好的页面,可以对挂载的DOM进行操作
beforeupdate 和updated:改变页面元素时就是进入更新阶段
销毁阶段:beforedestroy 和destroyed
父子组件生命周期
三个阶段都是父组件先进入before阶段,待子组件ed后,父组件再进入ed状态
请求放在mounted
created是准备好了数据,而mounted连dom也加载好了。如果在created阶段后去做渲染的同时,我们还做了Ajax操作,Ajax结束后会返回数据,我们会把它插入到主线程去运行。但是浏览器机制中,渲染线程和js线程是互斥的,所以有可能做渲染的同时还要处理数据,渲染可能会被打断。