Vue.js嵌套组件生命周期执行顺序

190 篇文章 25 订阅
订阅专栏

此前一次面试被问到的问题,第一次还确实有点懵逼,特此记录下来。

有组件A,组件B,组件C,组件C是组件B的子组件,组件B又是组件A的子组件,那么直观的层级结构如下:

ComponentA
--ComponentB
----ComponentC

问:他们之间生命周期函数的调用顺序是什么?

下面的代码表示上述结构,全局注册了三个组件Comp、childrenA 和 childrenB。在 childrenA 中引用 childrenB,在 Comp 中 引用 childrenA。

Vue.component('comp', {
    template: '<div><children-a></children-a></div>',
    beforeCreate() {
        console.log('Comp beforeCreate')
    },
    created() {
        console.log('Comp created')
    },
    beforeMount() {
        console.log('Comp beforeMount')
    },
    mounted() {
        console.log('Comp mounted')
    },
})
Vue.component('childrenA', {
    template: '<div><children-b></children-b></div>',
    beforeCreate() {
        console.log('--childrenA beforeCreate')
    },
    created() {
        console.log('--childrenA created')
    },
    beforeMount() {
        console.log('--childrenA beforeMount')
    },
    mounted() {
        console.log('--childrenA mounted')
    },
})
Vue.component('childrenB', {
    template: '<div>{{text}}</div>',
    data() {
        return {
            text: 'childrenB'
        }
    },
    beforeCreate() {
        console.log('----childrenB beforeCreate')
    },
    created() {
        console.log('----childrenB created')
    },
    beforeMount() {
        console.log('----childrenB beforeMount')
    },
    mounted() {
        console.log('----childrenB mounted')
    },
})
new Vue({
    el: '#app'
})

输出结果如下:

Comp beforeCreate
Comp created
Comp beforeMount
--childrenA beforeCreate
--childrenA created
--childrenA beforeMount
----childrenB beforeCreate
----childrenB created
----childrenB beforeMount
----childrenB mounted
--childrenA mounted
Comp mounted

可以看到,先执行父级的beforeCreate、created 和 beforeMount,然后再去执行子组件的beforeCreate、created 和 beforeMount,如果子组件下面没有子组件了,就执行 mounted,然后再返回父级执行 mounted。

整个过程用图表示如下:

640?wx_fmt=png

 

全文完。


关注公众号,第一时间接收最新文章。如果对你有一点点帮助,可以点喜欢点赞点收藏,还可以小额打赏作者,以鼓励作者写出更多更好的文章。

博客
如何为开源项目做出贡献——你应该知道的非技术性的事情
12-21 135
GitHub 上的标签是传递问题或 pull request 类型或状态信息的标签。是项目所有者和维护者认为适合初学者使用的标签。我曾经创建了一个关于链接断裂的问题,我解释了这个错误以及贡献者必须采取的解决步骤。我还提到这个问题是新手友好的,所以我们想把它留给那些希望为项目做出贡献的新手。在通过维护者的审查后,这个问题被标记为。可悲的是,那些故意挑起这个 issue 的人并不是新手。如果您已有一定的经验,请考虑离开此标签。该标签适用于开源或项目所用技术的初学者。
博客
第1章 什么是 Micro SaaS?
10-07 351
就我而言,我能够启动我的 Micro SaaS 应用程序作为副业,最终在我扩大规模后,我能够辞掉朝九晚五的蹩脚工作,过上 Micro SaaS 自由的生活!关于浏览器扩展的最后一点 - 作为 W3C 社区于 2015 年创建的浏览器扩展 API 标准化计划的结果,您可以在主要浏览器之间移植您的扩展/附加组件,而无需重新编写您的应用程序。在经历了构建应用程序的旅程,直到我可以辞去日常工作,然后扩展和销售它们时,我觉得我处于一个很好的位置,可以与世界各地的软件开发人员分享我的知识。
博客
突破内卷!写业务代码中的成长机会
03-20 580
写业务代码有成长机会吗?关于这个问题,答案非常肯定:必须有成长机会。对于大部分公司而言,能够写底层代码或者中间件代码的人总是有限的,写业务代码会面临更高的复杂度。这里分三个层次来看其中的成长机会。第 1 个层次,让代码写得不一样。可从代码规范、可读性、可扩展性等角度着手,这也是程序员的基本功。第 2 个层次,考虑业务问题和技术问题的匹配。可从写业务代码中理解需求,- 并做好分析与设计。被动接...
博客
在 Flutter 中正确处理文本缩放
06-07 502
本教程的结构首先介绍最简单且最有影响力的解决方案。后面的部分涵盖了较难实施且总体影响较小的解决方案,但它们对于解决特定情况很有用。
博客
我们如何利用 0 美元营销将 UX/UI 产品发展到 320k 用户
06-05 603
嘿 👋我是 Paul,的联合创始人。现在,我们是一个由7人(+少数兼职成员)组成的团队,试图将产品扩展到$ 1M + ARR。希望这些对您有所帮助,并祝您未来的产品好运!我决定与大家分享对我们有用的 12 个成长渠道,它们也会对你的成长之路有所帮助。
博客
每个前端开发人员都应该了解的软件工程原理
05-30 602
作为前端开发人员,我们常常专注于创建漂亮的用户界面。然而,我们必须牢记,美也在于内在,完美像素的方法也应转化为我们的代码组织和结构。在本文中,我们将探讨一些基本的软件工程原则,每个前端开发人员都应该了解并在自己的项目中应用这些原则。
博客
告别 Dart 中的 Future.wait([])
05-25 349
zipWith 扩展方法允许您将两个future的结果组合成一个类型化元组,从而无需手动转换。在此示例中,我们将合并两个future的结果:一个解析为字符串 “andrew”,另一个解析为整数 1984。该zipWith方法返回一个元组,(T, T2)其中T是第一个未来的类型,T2是第二个未来的类型。但是等等,还有更多!您甚至可以链接多个zipWith调用来组合三个或更多future// ...在此示例中,我们将三个 futures 组合在一起,从而生成一个嵌套元组。
博客
innerHTML 的新替代方案
05-22 612
浏览器支持说明:所有浏览器都支持。setHTML仍在标准化中,仅在 Firefox 中可用。自版本 125 起在 Chrome 和 Edge 中受支持。浏览器最近实施了一种新的方法。这里的Unsafe意味着,就像innerHTML一样,它不执行输入清理。这种命名方式与以前的浏览器 API 并不一致:我们有innerHTML,但没有;有eval(),但没有,等等。但与老方法不同的是,它既有安全版本(setHTML),也有不安全版本()–这就是命名的由来。
博客
我用 Flutter、React Native 和 Ionic 构建了相同的应用程序
05-16 454
在开始寻找最佳的跨平台移动开发框架的过程中,Flutter、React Native 和 Ionic 是让我印象深刻的。这三款产品很有吸引力,因为它们承诺在为多个平台使用单一代码库的同时提供良好的性能。为了开始冒险进入这个新世界,我创建了三个版本的移动应用程序,这些应用程序使用 API 并在屏幕上显示基本数据。这个想法很简单:构建一个应用程序,显示一个随机国家的详细信息。我以前在 Python 中做过类似的项目。让我们先深入了解一下我使用 Flutter 构建移动应用程序的经验。
博客
在 CSS 中使用 text-emphasis 来增强文本的趣味性
05-14 337
您可以更改颜色、大小、字体,甚至添加阴影和轮廓等效果。但最近,我了解到一个我以前没有听说过的时尚 CSS 属性,它非常棒!属性是一种有趣的方式,可以增加对文本的强调,并可用于为您的设计增添趣味。大多数现代浏览器都支持它,因此您可以立即开始使用它来使您的文本脱颖而出!属性组合的简称,可以为文本添加强调标记。这些标记可用于以各种方式突出显示文本,例如在文本上方或下方添加点、圆、双圆或文本。您甚至可以使用表情符号来强调文本。您也可以使用字母来强调文本。这将在文本顶部添加一个点,如下所示。
博客
Appwrite 1.5 已在云端发布 - 四月产品更新
05-11 806
作为1.5版本的一部分,Appwrite在Init期间发布了许多新产品和功能。虽然新的Appwrite产品和功能已经可以在自托管平台上使用,但还没有发布到云平台上。今天,我们很高兴地宣布,Appwrite 1.5云版本终于发布了,等待终于结束了
博客
为什么 Cloudflare 是 2024 年 Vercel 的最佳替代品?生态系统和价格比较
05-10 691
本文探讨了 Vercel 的功能,并与 Cloudflare 生态系统中的类似产品进行了比较。从托管到存储,我们将看到为什么 Cloudflare 可以在 2024 年成为 Vercel 的最佳替代品
博客
为 Flutter 应用设置主题:ThemeData 和 ColorScheme 指南
05-08 1538
在媒体和其他来源中有许多关于这个主题的文章,那么这篇文章的必要性是什么?在本文中,我计划仅关注ThemeData小部件的关键点以及我的开发经验中最常用的参数,并且您将获得有关每个参数如何对您的应用程序执行操作的简要说明。你好奇吗?继续阅读🤗。
博客
Flutter 从 Assets 中读取 JSON 文件:指南 [2024]
04-26 659
在本教程中,我们将探讨如何从 Flutter 项目中的 asset 中读取 JSON 文件。您将找到详细的解释、实际示例和最佳实践,使您的 JSON 文件处理顺利高效。那么,让我们深入了解 Flutter 和 JSON 的世界吧!
博客
如何在 Flutter 中制作多种颜色的 TextField
04-23 697
原文:https://medium.com/akvelon/how-to-make-textfield-in-multiple-colors-in-flutter-c317ae0efafe。你可以进行更复杂的处理。类是实现各种自定义功能的大门。widget 本身并不施加任何样式。对象中,这就是通常应用颜色的方式。我们首先导入为另一个项目制作的。对象,即一段带有样式的文本。,默认实现只是将其放入。如果您有兴趣,请查看这里。要重载该方法,请子类化。请参阅此处的完整代码。请参阅此处的完整代码。
博客
如何使用 Node.js 发送电子邮件全解和相关工具推荐
04-19 1064
是的,您可以使用自定义的 SMTP 服务器发送电子邮件。您需要在传输器选项中提供 SMTP 服务器的主机、端口和身份验证详细信息。
博客
推荐一个非常好用的产品:亮数据,轻松玩转数据获取!
04-15 251
通过编写一个简单的Python脚本,我测试了亮数据平台的IP归属地和数量,结果显示,每次请求的IP都是不同的,且归属地随机分布,这有效地保护了我的隐私。在实际使用亮数据平台的过程中,我对其稳定性、延迟性和匿名性进行了深入的测试,在进行在线ping值测试时,即使在高频率的请求下,亮数据平台的延迟始终保持在3秒以内,这让我对它的稳定性印象深刻。为了进一步验证亮数据平台的实力,我进行了一个实战演练,爬取电商网站数据用于市场分析,通过亮数据浏览器,我轻松地设置了爬虫任务,并在几分钟内获取了大量有价值的数据。
博客
Dart 中 JS 互操作的历史
04-11 1048
这引发了 JS Types 的工作,以在编程模型中明确定义 Dart 和 JS 的边界,并找到在 Wasm 和 JS 编译目标中使用 JS 的一致方法。2023 年,当我们在 Dart 3.0 中放弃了不健全的空安全性时,我们终于看到了我们所取得的进步,我们的设计和 @staticInterop 的工作清楚地表明,我们已经准备好解决长期存在的健全性差距。了解我们的过去,我们确信这不是旅程的终点​​,而是我们历史上令人兴奋的时刻。这意味着我们的互操作性是我们原本健全的语言中不健全的根源。
博客
Flutter Keys: 你的终极指南,让 widget 世界更快乐
04-07 277
我们将讨论 UniqueKey、ValueKey、ObjectKey、PageStorageKey 和 GlobalKey — 所有这些很棒的 Key 类型都可以提升您的 Flutter 水平!
博客
如何打造一个好的(Vue)组件库?这里有一个清单
04-03 998
你是否考虑过在 Vue.js 或其他框架中构建组件库,或者你需要它来构建可重用的设计系统,以减少投入市场的时间并提供视觉一致性,或者你想为社区贡献另一个组件库。你可能想立即投入进去并开始编码,但是首先你必须退后一步,问问自己:“是什么构成了一个好的组件库?让我们在这篇文章中回答这个问题,给你一个我们认为是必要考虑的项目清单。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 什么是AVIF?如何在您的网站上使用AV1图像格式 211399
  • Vue 3教程(适用于Vue 2用户) 84222
  • Pinia与Vuex的对比:Pinia是Vuex的良好替代品吗? 29741
  • 10个漂亮的VSCode浅色(Light)主题 19966
  • JavaScript数组反转教程 14672

分类专栏

  • Micro SaaS手册,从idea到售出的基本指南 付费 14篇
  • Flutter开发技术 31篇
  • 独立创业 10篇
  • 大前端技术 190篇
  • 程序员进阶 25篇
  • 学习笔记 14篇

最新评论

  • 如何使用JavaScript访问设备前后置摄像头,真人出镜!

    物语~: 华为手机打开后置摄像头为什么画面会被放大?

  • 10个漂亮的VSCode浅色(Light)主题

    铃閣: github那个怎么设置灰色呀

  • 我们如何利用 0 美元营销将 UX/UI 产品发展到 320k 用户

    m0_61369227: 学到了,细节很到位!【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】

  • 我用 Flutter、React Native 和 Ionic 构建了相同的应用程序

    ha_lydms: 这个博客的排版和设计都非常漂亮,让阅读变得更加愉悦。我喜欢这种简洁而精致的风格。

  • innerHTML 的新替代方案

    CSDN-Ada助手: 恭喜你这篇博客进入【CSDN每天值得看】榜单,全部的排名请看 https://bbs.csdn.net/topics/618734618。

大家在看

  • AI学习指南机器学习篇-线性支持向量机 211
  • 计算机毕业设计项目推荐,32236 校园医院预约挂号系统(开题答辩+程序定制+全套文案 )上万套实战教程手把手教学JAVA、PHP,node.js,C++、python、数据可视化
  • 124文章解读与程序——SCI《虑P2G和碳捕集设备的热电联供综合能源系统优化调度模型》已提供下载资源 1462
  • Kimichat使用案例014:用kimichat自动批量重命名三体字幕文件(零代码编程)
  • 125文章解读与程序——《基于目标级联法的微网群多主体分布式优化调度》已提供下载资源 530

最新文章

  • 在 Flutter 中正确处理文本缩放
  • 我们如何利用 0 美元营销将 UX/UI 产品发展到 320k 用户
  • 每个前端开发人员都应该了解的软件工程原理
2024
06月 2篇
05月 8篇
04月 7篇
03月 9篇
02月 4篇
01月 13篇
2023年50篇
2022年23篇
2021年39篇
2020年111篇
2019年16篇
2018年6篇
2017年10篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

聚圣源f1中国大奖赛大宋最狠暴君姓周洋气名字女孩起名日用百货店铺起名大全乡村爱情13演员表5月3日互相关爱的作文拨备笑容可掬起的商标名医药商标起名少年包青天3演员表乐器公司起名大全2006世界杯歌曲沐暖暖慕霆枭全文免费阅读广州电信kdata潘氏起名女孩子名字用张字起个网名薄樱鬼游戏北京封阳台丽萍英文名怎么起武林外传目录雁字起名大全名扬天下国起名网万古第一神超时空恋人免费观看房地产信托百货日杂店起名大全易经大师起名淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化