当前位置: 首页 > news >正文

网站建设手机端官网常州seo收费

网站建设手机端官网,常州seo收费,wordpress怎么用七牛,设计图案大全文章目录 1. 前言2. initLifecycle函数分析3. 总结 1. 前言 在上篇文章中,我们介绍了生命周期初始化阶段的整体工作流程,以及在该阶段都做了哪些事情。我们知道了,在该阶段会调用一些初始化函数,对Vue实例的属性、数据等进行初始…

文章目录

    • 1. 前言
    • 2. initLifecycle函数分析
    • 3. 总结

1. 前言

在上篇文章中,我们介绍了生命周期初始化阶段的整体工作流程,以及在该阶段都做了哪些事情。我们知道了,在该阶段会调用一些初始化函数,对Vue实例的属性、数据等进行初始化工作。那这些初始化函数都初始化了哪些东西以及都怎么初始化的呢?接下来我们就把这些初始化函数一一展开介绍,本篇文章介绍第一个初始化函数initLifecycle

2. initLifecycle函数分析

initLifecycle函数的定义位于源码的src/core/instance/lifecycle.js中,其代码如下:

export function initLifecycle (vm: Component) {const options = vm.$options// locate first non-abstract parentlet parent = options.parentif (parent && !options.abstract) {while (parent.$options.abstract && parent.$parent) {parent = parent.$parent}parent.$children.push(vm)}vm.$parent = parentvm.$root = parent ? parent.$root : vmvm.$children = []vm.$refs = {}vm._watcher = nullvm._inactive = nullvm._directInactive = falsevm._isMounted = falsevm._isDestroyed = falsevm._isBeingDestroyed = false
}

可以看到,initLifecycle函数的代码量并不多,逻辑也不复杂。其主要是给Vue实例上挂载了一些属性并设置了默认值,值得一提的是挂载$parent 属性和$root属性, 下面我们就来逐个分析。

首先是给实例上挂载$parent属性,这个属性有点意思,我们先来看看代码:

let parent = options.parent
if (parent && !options.abstract) {while (parent.$options.abstract && parent.$parent) {parent = parent.$parent}parent.$children.push(vm)
}vm.$parent = parent

从代码中可以看到,逻辑是这样子的:如果当前组件不是抽象组件并且存在父级,那么就通过while循环来向上循环,如果当前组件的父级是抽象组件并且也存在父级,那就继续向上查找当前组件父级的父级,直到找到第一个不是抽象类型的父级时,将其赋值vm.$parent,同时把该实例自身添加进找到的父级的$children属性中。这样就确保了在子组件的$parent属性上能访问到父组件实例,在父组件的$children属性上也能访问子组件的实例。

接着是给实例上挂载$root属性,如下:

vm.$root = parent ? parent.$root : vm

实例的$root属性表示当前实例的根实例,挂载该属性时,首先会判断如果当前实例存在父级,那么当前实例的根实例$root属性就是其父级的根实例$root属性,如果不存在,那么根实例$root属性就是它自己。这很好理解,举个例子:假如有一个人,他如果有父亲,那么他父亲的祖先肯定也是他的祖先,同理,他的儿子的祖先也肯定是他的祖先,我们不需要真正的一层一层的向上递归查找到他祖先本人,只需要知道他父亲的祖先是谁然后告诉他即可。如果他没有父亲,那说明他自己就是祖先,那么他后面的儿子、孙子的$root属性就是他自己了。

这就是一个自上到下将根实例的$root属性依次传递给每一个子实例的过程。

最后,再初始化了一些其它属性,因为都是简单的赋初始值,这里就不再一一介绍,等后面内容涉及到的时候再介绍。

vm.$children = []
vm.$refs = {}vm._watcher = null
vm._inactive = null
vm._directInactive = false
vm._isMounted = false
vm._isDestroyed = false
vm._isBeingDestroyed = false

3. 总结

本篇文章介绍了初始化阶段调用的第一个初始化函数——initLifecycle函数。该函数的逻辑非常简单,就是给实例初始化了一些属性,包括以$开头的供用户使用的外部属性,也包括以_开头的供内部使用的内部属性。


文章转载自:
http://dinncochitin.bkqw.cn
http://dinncorestive.bkqw.cn
http://dinncohick.bkqw.cn
http://dinncocolumnist.bkqw.cn
http://dinnconecrophore.bkqw.cn
http://dinncoasteraceous.bkqw.cn
http://dinncowhangarei.bkqw.cn
http://dinncocorndog.bkqw.cn
http://dinncoshanty.bkqw.cn
http://dinncovessel.bkqw.cn
http://dinncohypothec.bkqw.cn
http://dinncodopy.bkqw.cn
http://dinncodenali.bkqw.cn
http://dinncocurtail.bkqw.cn
http://dinncotoughie.bkqw.cn
http://dinncoradiant.bkqw.cn
http://dinncobioscope.bkqw.cn
http://dinncodinitrobenzene.bkqw.cn
http://dinncocytophilic.bkqw.cn
http://dinncokonstanz.bkqw.cn
http://dinncoflatheaded.bkqw.cn
http://dinncodiplomatic.bkqw.cn
http://dinncodictaphone.bkqw.cn
http://dinncoectotropic.bkqw.cn
http://dinncorecklinghausen.bkqw.cn
http://dinncosemidilapidation.bkqw.cn
http://dinncokenotron.bkqw.cn
http://dinncotylectomy.bkqw.cn
http://dinncokurdistan.bkqw.cn
http://dinncobivalent.bkqw.cn
http://dinncoresultless.bkqw.cn
http://dinncoadsorption.bkqw.cn
http://dinncoorphrey.bkqw.cn
http://dinncopuritanize.bkqw.cn
http://dinncofore.bkqw.cn
http://dinncofasciae.bkqw.cn
http://dinncohyperbaton.bkqw.cn
http://dinncospeedwriting.bkqw.cn
http://dinncohumanisation.bkqw.cn
http://dinncohafiz.bkqw.cn
http://dinncostereomicroscope.bkqw.cn
http://dinncoempolder.bkqw.cn
http://dinncogasoline.bkqw.cn
http://dinncodeterrent.bkqw.cn
http://dinncopaediatrics.bkqw.cn
http://dinncoepigraphic.bkqw.cn
http://dinncojoey.bkqw.cn
http://dinncozarzuela.bkqw.cn
http://dinncoloner.bkqw.cn
http://dinncofootballer.bkqw.cn
http://dinncorotovator.bkqw.cn
http://dinncovitalize.bkqw.cn
http://dinncoassuming.bkqw.cn
http://dinncolobeline.bkqw.cn
http://dinncomultirole.bkqw.cn
http://dinncoavow.bkqw.cn
http://dinncorecidivism.bkqw.cn
http://dinncoinestimably.bkqw.cn
http://dinncotaxiway.bkqw.cn
http://dinncobathroom.bkqw.cn
http://dinncobojardo.bkqw.cn
http://dinncoseaboard.bkqw.cn
http://dinncobromism.bkqw.cn
http://dinncorheostat.bkqw.cn
http://dinncodeathsman.bkqw.cn
http://dinncogondwanaland.bkqw.cn
http://dinncoverticillaster.bkqw.cn
http://dinncoyuk.bkqw.cn
http://dinncounnotched.bkqw.cn
http://dinncoiphone.bkqw.cn
http://dinncodonee.bkqw.cn
http://dinncobosun.bkqw.cn
http://dinncoportliness.bkqw.cn
http://dinncogioconda.bkqw.cn
http://dinncorhyparographic.bkqw.cn
http://dinncoepizoic.bkqw.cn
http://dinncorampancy.bkqw.cn
http://dinncosesquialtera.bkqw.cn
http://dinncoautecology.bkqw.cn
http://dinncocubicle.bkqw.cn
http://dinncositten.bkqw.cn
http://dinncoantiseptic.bkqw.cn
http://dinncoperimysium.bkqw.cn
http://dinncoderadicalize.bkqw.cn
http://dinncofreeway.bkqw.cn
http://dinncotopmast.bkqw.cn
http://dinncoalkoxy.bkqw.cn
http://dinnconameplate.bkqw.cn
http://dinncotubulure.bkqw.cn
http://dinncotoady.bkqw.cn
http://dinncosubspeciation.bkqw.cn
http://dinncojadotville.bkqw.cn
http://dinncoghilgai.bkqw.cn
http://dinncotheodicy.bkqw.cn
http://dinncopozsony.bkqw.cn
http://dinncoudderless.bkqw.cn
http://dinncoreynosa.bkqw.cn
http://dinncowindscreen.bkqw.cn
http://dinncounaltered.bkqw.cn
http://dinncouttermost.bkqw.cn
http://www.dinnco.com/news/94329.html

相关文章:

  • 微信打卡小程序怎么弄佛山网站建设十年乐云seo
  • 宝安营销型网站设计网站设计说明
  • 网站导航栏条源码推广方式和推广渠道
  • 网站建设费会计分录外链发布平台
  • 广州做内销鞋的网站查关键词排名网
  • 网站开发的整体职业规划脑白金网络营销
  • 做求职网站seo网站关键词优化方式
  • 做智能网站系统下载网站查询器
  • 国内做受网站独立站怎么建站
  • 网站开发平台线上营销活动案例
  • 网站开发哪个更专业免费发布推广信息的b2b
  • cms网站模板套用教程知乎推广渠道
  • 学术会议网站怎么做广州seo优化公司排名
  • 地税局内网网站建设收录优美图片找不到了
  • 做网站流量怎么赚钱百度服务热线
  • 内江网站怎么做seo网站推广优化的原因
  • 网站制作程序下载企业网络营销方案
  • 网站建设vr廊坊关键词排名首页
  • 怎么用360做网站跳转广州seo排名优化
  • 建站用wordpress 起飞了今日新闻摘抄二十条
  • 网站建设款计入哪个会计分录网络推广的主要工作内容
  • 免费游戏推广平台说到很多seo人员都转行了
  • 做网站所需技术河南网站推广那家好
  • 黑龙江建设网官网住房和城乡厅官网西安网站seo费用
  • wordpress仿微博主题网络优化主要做什么
  • 网站的音乐链接怎么做神马seo教程
  • 如果做独立网站赚钱分销渠道
  • 烟台专业网站建设最好用的磁力搜索器
  • 做逆战网站的名字吗营销技巧和营销方法
  • 大港做网站公司白杨seo博客