乐山400电话办理【乐山网站公司】乐山百度优化、乐山域名注册、乐山网店美工、乐山微信公众号托管-小程序制作-网站建设【企业网站制作|网页设计】- 高端网站建设 - 书生商友信息科技-

全国热线:400-111-6878

网站建设推广专家

乐山400电话办理【乐山网站公司】乐山百度优化、乐山域名注册、乐山网店美工、乐山微信公众号托管

发表日期: 2021-06-03 14:14:50 浏览次数:119

乐山400电话办理【乐山网站公司】乐山百度优化、乐山域名注册、乐山网店美工、乐山微信公众号托管


网站建设.jpg


乐山,四川省辖地级市,古称嘉州,有“海棠香国”的美誉。位于四川省中部,四川盆地的西南部,地势西南高,东北低,属中亚热带气候带。乐山是四川省重要工业城市、成都经济区南部区域中心城市、重要枢纽城市、成渝城市群重要交通节点和港口城市。成昆铁路、成贵高铁贯穿全境。 [1]  乐山三江汇合。大渡河,青衣江在乐山大佛脚下汇入岷江。 [2] 

乐山是国家历史文化名城,国家首批对外开放城市、全国绿化模范城市、中国优秀旅游城市、国家园林城市、全国卫生城市。乐山有世界级遗产三处—世界自然与文化遗产峨眉山和乐山大佛、世界灌溉工程遗产东风堰,国家4A级景区以上景区15处,国家A级景区35处。 [3] 

截至2018年底,乐山市辖4区6县,代管1个县级市,总面积12720.03平方公里。2018年底户籍人口350.68万人,常住人口326.7万。 [3]  2020年乐山市地区生产总值2003.43亿元。 [50] 

2019年7月,被评为国家知识产权试点城市。 [5]  2020年10月20日,入选全国双拥模范城(县)名单。 [6] 



概述

当面试官问:“谈谈你对vue的生命周期的理解”,听到这句话你是不是心里暗自窃喜:这也太容易了吧,不就是beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy、destroyed 这几个钩子函数么,创建=>挂载=>更新=>销毁,So easy !!!

非也非也。如果你只是简单罗列出这几个钩子函数的名称,不具体深入阐述的话,你这样的回答很难令面试官满意。如何才能以点带面深入阐述自己对vue的生命周期理解,从而让面试官对你留下好印象呢?

别急,告诉你,下次再碰到这个问题,你可以直接甩给面试官下面这张Image就OK了~

当然,甩张Image给面试官这句话肯定是开玩笑的(适度幽默,缓解紧张气氛)。不过这张流程图还是有用的,因为它是我从Vue官网上拷贝下来的,只要你能理解了这张图,也就对Vue的生命周期有了一个大致的了解。那么接下来,将手摸手教你如何深入浅出地说出令面试官满意的、有亮点的回答。

vue生命周期

在谈到Vue的生命周期的时候,我们首先需要创建一个实例,也就是在 new Vue ( ) 的对象过程当中,首先执行了init(init是vue组件里面默认去执行的),在init的过程当中首先调用了beforeCreate,然后在injections(注射)和reactivity(反应性)的时候,它会再去调用created。所以在init的时候,事件已经调用了,我们在beforeCreate的时候千万不要去修改data里面赋值的数据,最早也要放在created里面去做(添加一些行为)。

created完成之后,它会去判断instance(实例)里面是否含有“el”option(选项),如果没有的话,它会调用vm.$mount(el)这个方法,然后执行下一步;如果有的话,直接执行下一步。紧接着会判断是否含有“template”这个选项,如果有的话,它会把template解析成一个render function ,这是一个template编译的过程,结果是解析成了render函数:

render (h) {return h('div', {}, this.text)}

解释一下,render函数里面的传参h就是Vue里面的createElement方法,return返回一个createElement方法,其中要传3个参数,第一个参数就是创建的div标签;第二个参数传了一个对象,对象里面可以是我们组件上面的props,或者是事件之类的东西;第三个参数就是div标签里面的内容,这里我们指向了data里面的text。

使用render函数的结果和我们之前使用template解析出来的结果是一样的。render函数是发生在beforeMountmounted之间的,这也从侧面说明了,在beforeMount的时候,$el还只是我们在HTML里面写的节点,然后到mounted的时候,它就把渲染出来的内容挂载到了DOM节点上。这中间的过程其实是执行了render function的内容。

在使用.vue文件开发的过程当中,我们在里面写了template模板,在经过了vue-loader的处理之后,就变成了render function,最终放到了vue-loader解析过的文件里面。这样做有什么好处呢?原因是由于在解析template变成render function的过程,是一个非常耗时的过程,vue-loader帮我们处理了这些内容之后,当我们在页面上执行vue代码的时候,效率会变得更高。

beforeMount在有了render function的时候才会执行,当执行完render function之后,就会调用mounted这个钩子,在mounted挂载完毕之后,这个实例就算是走完流程了。

后续的钩子函数执行的过程都是需要外部的触发才会执行。比如说有数据的变化,会调用beforeUpdate,然后经过Virtual DOM,最后updated更新完毕。当组件被销毁的时候,它会调用beforeDestory,以及destoryed

这就是vue实例从新建到销毁的一个完整流程,以及在这个过程中它会触发哪些生命周期的钩子函数。那说到这儿,可能很多童鞋会问,钩子函数是什么意思?

钩子函数,其实和回调是一个概念,当系统执行到某处时,检查是否有hook,有则回调。说的更直白一点,每个组件都有属性,方法和事件。所有的生命周期都归于事件,在某个时刻自动执行。

其实,当你跟面试官阐述到这儿的时候,面试官基本上已经满意你的回答了,隐约看到了你的技术功底。当然,如果你还想更进一步,让面试官对你刮目相看,达到加分的效果,你还可以这样说:

在这个过程当中,Vue为我们提供了renderError方法,这个方法只有在开发的时候它才会被调用,在正式打包上线的过程当中,它是不会被调用的。它主要是帮助我们调试render里面的一些错误。

renderE(h, err)rror {return h('div', {}, err.stack)}

有且只有当render方法里面报错了,才会执行renderError方法。

所以我们主动让render函数报个错:

render (h) {throw new TypeError('render error')}

如图所示,渲染出来的就是Error信息了。还有一点,renderError只有在本组件的render方法报错的情况下它才会被调用。

写在最后

这就是关于vue的生命周期的一个详细的阐述,大家只需要记住在vue的生命周期里有哪些钩子函数,它们分别是在什么情况下会被调用,以及其中的一些原理即可。

以后如果有人问你“如何解释vue的生命周期才能令面试官满意”这个问题,你可以直接把这篇文章甩给他就OK了。

最后祝所有面试的童鞋顺利拿到OFFER!



乐山400电话办理乐山网站公司乐山百度优化、乐山域名注册、乐山网店美工、乐山微信公众号托管

上一条:乐山网站推广【乐山办理400电话】乐山SEO优化、乐山微信公众号APP客户端小程序开发、乐山网站托管、乐山APP开发
下一条:乐山网站优化【乐山开通400电话】乐山网站搭建、乐山微信公众号推文外包、乐山开通京东拼多多设计、乐山淘宝装修
网站制作
小程序制作
网站优化
网站开发
400电话办理
网络推广
网站建设
网店装修
微信公众号开发
网页设计
网络公司
域名企业邮箱
服务器空间
网站案例报价
百科问答
编辑排版美工
App软件开发
百度推广
代运营托管
logo设计
网络全网营销
网站备案
网站定制
小程序开发公司
首页
电话
立即预约