web前端面试题附答案004-vue中created和mounted两个钩子之间时间差值受什么影响

答:

一:怎么样,这2个生命周期钩子熟不熟,这2个钩子大家每天都在用,所以面试回答就更不能掉以轻心,要快速思考这个问题考的是什么。还是那个思路,讲概念,讲经验,有条理,越多越好,讲到面试官觉得够了够了,我还要问下面的问题呢

二、开始回答:

       1.答概念

              Created主要是拿到数据依赖,拿到我们写在template模板里的dom,而这个时候,所谓的虚拟dom也没有生成,真实dom也没有生成,所以数据依赖和模板dom还无法真实绑定。但是我们可以在这个钩子里发送一些异步请求,可以提前做一些数据预备处理;而mounted呢,他包含了react的render功能,数据依赖和dom绑定,并且最终生成真实dom,我们可以做各种操作了。但刚才有个问题,created可以发送请求了,那么如果这个请求非常之快,还没有mounted这一步就把数据请求回来了,那么这里就给数据变量赋值了,岂不是没有走到mounted,无法赋值吗?所以这里可以表述一下在项目中$.nextTick的使用。这不就是项目经验和解决问题的过程嘛

       2.既然题目问道2个钩子函数之间的时间差值,那么首先想到的就是有个beforeMounted这个生命周期钩子吧,我们在这个钩子里做一些拦截的事,是不是会影响呢

       3.第一步已经说明了2个钩子函数的概念,所以组件嘛,就有简单和复杂的问题,如果你的数据依赖层级太深,对象抱着数组,数组里又有对象,如果你的template模板里的html内容写的过于深入,绑定起来是不是时间更长呢,如果又包含了子组件,子组件又套了子组件呢,是不是过程就会不断拉长。在这一步你可以为自己扩充回答一下父子组件的生命周期执行的顺序,当然不宜说的过深,大概关键点位表述一下就可以了;

       4.一旦说道渲染,立刻要想到dom树的组成部分,对,就是css那一部分。虽然我们最终写在组件里的css都会被打出css文件,但现在很多人用了less非常爽,嵌套起来刹不住车,这最终被打出来的css文件也回一个嵌套极深的逻辑,再加上需要下载css文件,再被浏览器识别,再开始执行与dom模板组装,其实浏览器帮我们做了非常多的时间,我们能做的就是尽量少的让浏览器做。

     5.既然这是2个生命周期,刚刚我们说道异步请求,那么网速将会是一个考虑条件了吧。现在虽然总是用Promise,又用async await,但大家有没有想过,一说就是解决了原来的回调地狱问题,但就算有回调地狱又咋了,代码跑不了?用户浏览不了?他只是提升了一小部分大家的开发时间,让大家表面觉得很爽了。但一旦涉及到异步,异步所需要的这个时间他倒是也解决了啊,从客户端想服务端请求别花时间啊。可能有人会反驳我说,这哪是节省了一点点开发时间,是大大提升了好吧。见仁见智吧,上班你摸鱼那点功夫,回调80层地狱估计也回调出来了吧。

       6.有没有想过,一台新出的旗舰机和好几年的百元安卓机比,执行一行js代码的时间会有差别吗?所以这个是不是也算呢。很多人面试者说自己之前公司是做硬件的,自己做的前端程序会部署上去,如果能考虑到这点,会显得非常合适。


三、面试虽然是聊天,却非常耗费精力,所以私下复习面试题的时候一定要尽量掌握,背熟,经历的多了自然而然也能临时解决面试官的临场经验提问了。如果有觉得面试困难症的同学们,可以找我提供帮助。

你可能感兴趣的:(web前端面试题附答案004-vue中created和mounted两个钩子之间时间差值受什么影响)