热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

Vue中父子组件生命周期实行递次初探

现在前端框架都盛行组件化,页面元素都能够运用组件举行高度归纳综合,那末处置惩罚组件之间的关联就犹如处置惩罚页面架构一样主要。准确明白组件之间的关联,才让代码依据我们与预感体式格局事

现在前端框架都盛行组件化,页面元素都能够运用组件举行高度归纳综合,那末处置惩罚组件之间的关联就犹如处置惩罚页面架构一样主要。准确明白组件之间的关联,才让代码依据我们与预感体式格局事情。近来介入了一个Vue.js的项目,在处置惩罚父子嵌套组件之间关联时碰到了较大的阻力,虽然题目末了处理了,然则以消费大批时刻为价值的,纪录在这里,愿望下次不踩一样的坑,能更高效的处置惩罚此类题目。

0 题目形貌

同react,vue组件也有一套完全的生命周期,差别阶段有差别的分工。整体来说常常会用的生命周期钩子有以下几种:

  • created
  • mounted
  • destroy

一般会在这些钩子中处置惩罚一些异步请求,最常见的就是提议收集请求挪用api猎取数据。

这里有个题目:在单一组件中,钩子的实行递次是created -> mounted -> destroyed,但当父子组件嵌套时,父组件和子组件各具有各自自力的钩子函数,这些父子组件的这些钩子是如何融会实行,且实行递次又是如何的呢?

近来开辟中碰到的一个“诡异”的题目,就是因为对父子组件生命周期钩子实行递次明白不透辟引发的。题目是如许的:有一个组件有由一系列子组件构成,子组件又被分解成组件,如许下来就构成了三级组件。需求是在组件显现在页面上以后,再将数据初始化举行回显。父组件猎取数据后通报到子组件,请求子组件依据这个值将内部元数据举行过滤和加工。那末在子组件中什么机遇下才猎取父组件通报过来的新值呢?。

我的做法是如许的:最高层父组件的mounted中提议请求猎取数据,经由过程vue的相应机制以props的情势通报到子组件,在子组件的mounted中拿到对应的props举行处置惩罚。如许做法请求父组件的mounted机遇先于子组件的mounted,但事实是如许吗?明显不是。

如许致使的题目就是,数据没法准确的回显。

1 探讨

探讨的要领是:写一个有父子嵌套关联的组件,离别在他们的钩子函数中打印日记,视察实行递次。获得的效果如图所示,父组件先建立,然后子组件建立;子组件先挂载,然后父组件挂载。
《Vue中父子组件生命周期实行递次初探》

子组件挂载完成后,父组件还未挂载。所以组件数据回显的时刻,在父组件mounted中猎取api的数据,子组件的mounted是拿不到的。

细致看看父子组件生命周期钩子的实行递次,会发明created这个钩子是依据从外内递次实行,所以回显场景的处理方案是:在created中提议请求猎取数据,顺次在子组件的created中会接收到这个数据。

2 结论

Vue父子组件生命周期钩子的实行递次遵照:从外到内,然后再从内到外,不论嵌套几层深,也遵照这个规律。

组件化的设想思绪约略雷同,React中父子组件生命周期钩子实行递次,详细没做探讨,然则值得一提的是react父组件的componentDidMount也是晚于子组件componentDidMount实行的。

3 其他

关于回显,题目在于如安在子组件中晓得长途数据回来了,而且经由过程对长途数据的加工处置惩罚,终究构成准确的回显。处置惩罚依据钩子的递次猎取数据,在vue中另有一个特征watch,是不是能够经由过程watch属性的体式格局来更新回显呢?这类要领有待于探讨。


推荐阅读
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
  • 认识Vue关于Vue的描述有不少,不外乎都会拿来与Angular和React对比,同样头顶MVVM双向数据驱动设计模式光环的Angular自然被对比的最多,但到目前为止,Angul ... [详细]
  • #ReactivityFundamentals#DeclaringReactiveState ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • 随着前端技术的发展,越来越多的开发者开始使用react、vue等web框架,但很少有人深入理解这些框架的源码。然而,这些框架底层都是由原生的javascript构建而成。对于初学前端的人来说,可能会认为javascript很容易上手,但实际上只是因为它被高度封装了。与能够使用封装类的人相比,能够理解框架原理的人则处于另一个层面。本文将深入剖析jquery源码,探寻框架底层的原理,帮助读者更好地理解web框架的运行机制。 ... [详细]
  • VUE中引用路径的配置
    在vue项目开发中经常引用JS、CSS、IMG文件。当项目较大时文件层级很多,导致路径很长,我们可以通过在bulidwebpack.base.conf.js设置简便的引用路径一、 ... [详细]
  • 一、路由首先需要配置路由,就是点击good组件进入goodDetail组件配置路由如下{path:goodDetail,component:goodDetail}同时在good组件中写入如下点击事件,路由中加入 ... [详细]
  • 媒介本文的前身是源自github上的项目awesome-github-vue,但由于该项目上次更新时候为2017年6月12日,许多内容早已逾期或是许多近期优异组件未被收录,所以小肆 ... [详细]
  • 本文涉及源码版本为2.6.9准备工作down一份Vue源码,从package.json入手,找我们需要的代码1、package.json中的scripts,build:nodesc ... [详细]
  • 前言作为一个移动端初学者、爱好者,能使用前端技术开发原生游戏一直是一件渴望而不可及的事情,暂且不说游戏逻辑的复杂度,算法的健壮性ÿ ... [详细]
  • 什么是网关服务器初学linux服务器开发时,我们的服务器是很简单的,只需要一个程序完成与客户端的连接,接收客户端数据,数据处理,向客户端发送数据。但是在处理量很大的情况下,一 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 一:跨域问题1、同源策略(浏览器的安全策略)    只允许当前页面朝当前域下发请求,如果向其他域发请求,请求可以正常发送,数据也可以拿回,但是被浏览器拦截了  2、c ... [详细]
author-avatar
i1L3i1L4
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有