vue同步父子组件和异步父子组件的生命周期顺序问题


Posted in Javascript onOctober 07, 2018

关于vue组件的引入方式有两种

一、 同步引入

例子: import Page from '@/components/page'

二、异步引入

例子:const Page = () => import('@/components/page')

或者: const Page = resolve => require(['@/components/page'], page)

两种引入方式的不同之处在于:

同步引入时生命周期顺序为:父组件的beforeMount、created、beforeMount --> 所有子组件的beforeMount、created、beforeMount --> 所有子组件的mounted --> 父组件的mounted

例子:

<! -- App.vue -->
<template>
 <div id="app">
  <New /> <!-- 子组件一 -->
  <Page /> <!-- 子组件二 -->
  <router-view/>
 </div>
</template>
<script>
import Page from '@/components/page' // 同步方式引入
import New from '@/components/new'
export default {
 name: 'App',
 components: {
  Page,
  New
 },
 beforeCreate () {
  console.log('父组件App -------> App beforeCreate')
 },
 created () {
  console.log('父组件App -------> App created')
 },
 mounted () {
  console.log('父组件App -------> App mounted')
 },
 beforeMount () {
  console.log('父组件App -------> App beforeMount')
 }
}
</script>
</script>

<!-- new.vue -->
<template>
 <div>
 <p>this is a new component</p>
 </div>
</template>

<script>
export default {
 name: 'new',
 created () {
  console.log('子组件new ----> new created')
 },
 beforeCreate () {
  console.log('子组件new ----> new beforeCreate')
 },
 mounted () {
  console.log('子组件new ----> new mounted')
 },
 beforeMount () {
  console.log('子组件new ----> new beforeMount')
 }
}
</script>

<!-- page.vue-->
<template>
 <div>
 <Job />
 <p>this is a page component</p>
 </div>
</template>

<script>
import Job from '@/components/job'
export default {
 name: 'page',
 components: {
 Job,
 },
 beforeCreate () {
 console.log('子组件page ----> page beforeCreate')
 },
 created () {
 console.log('子组件page ----> page created')
 },
 mounted () {
    console.log('子组件page ----> page mounted')
 },
 beforeMount () {
   console.log('子组件page ----> page beforeMount')
 }
}
</script>

<!-- job.vue -->
<template>
 <div>
 <p>this is a job component, in page.vue</p>
 </div>
</template>

<script>
export default {
 name: 'job',
 created () {
  console.log('孙组件job ------> job created')
 },
 beforeCreate () {
  console.log('孙组件job ------> job beforeCreate')
 },
 mounted () {
  console.log('孙组件job ------> job mounted')
 },
 beforeMount () {
  console.log('孙组件job ------> job beforeMount')
 }
}
</script>

vue同步父子组件和异步父子组件的生命周期顺序问题

异步引入时生命周期顺序:父组件的beforeCreate、created、beforeMount、mounted --> 子组件的beforeCreate、created、beforeMount、mounted

在上面的代码只需要修改引入的方式:

import Page from '@/components/page' // 同步方式引入
import New from '@/components/new'
import Job from '@/components/job'

改为:

const Page = () => import ('@/components/page') // 异步引入
const New = () => import ('@components/new')
const Job = () => import ('@/components/job'

结果:

vue同步父子组件和异步父子组件的生命周期顺序问题

总结

以上所述是小编给大家介绍的vue同步父子组件和异步父子组件的生命周期顺序问题,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
一页面多XMLHttpRequest对象
Jan 22 Javascript
JS获取dom 对象 ajax操作 读写cookie函数
Nov 18 Javascript
jQuery插件开发基础简单介绍
Jan 07 Javascript
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
Jan 10 Javascript
iframe实用操作锦集
Apr 22 Javascript
jQuery多条件筛选如何实现
Nov 04 Javascript
jQuery实现微信长按识别二维码功能
Aug 26 Javascript
你点的 ES6一些小技巧,请查收
Apr 25 Javascript
详解Webpack-dev-server的proxy用法
Sep 08 Javascript
微信小程序表单验证插件WxValidate的二次封装功能(终极版)
Sep 03 Javascript
微信小程序使用GoEasy实现websocket实时通讯
May 19 Javascript
Vue图片裁剪组件实例代码
Jul 02 Vue.js
Vue面试题及Vue知识点整理
Oct 07 #Javascript
解决vue无法设置滚动位置的问题
Oct 07 #Javascript
cdn模式下vue的基本用法详解
Oct 07 #Javascript
vue实现添加与删除图书功能
Oct 07 #Javascript
JavaScript检查数据中是否存在相同的元素(两种方法)
Oct 07 #Javascript
JS函数内部属性之arguments和this实例解析
Oct 07 #Javascript
JS如何获取地址栏的参数实例讲解
Oct 06 #Javascript
You might like
关于初学PHP时的知识积累总结
2013/06/07 PHP
WordPress中用于获取搜索表单的PHP函数使用解析
2016/01/05 PHP
php+flash+jQuery多图片上传源码分享
2020/07/27 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
2016/09/11 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
浅谈php://filter的妙用
2019/03/05 PHP
php中钩子(hook)的原理与简单应用demo示例
2019/09/03 PHP
用JavaScript将从数据库中读取出来的日期型格式化为想要的类型。
2009/08/15 Javascript
javascript cookie操作类的实现代码小结附使用方法
2010/06/02 Javascript
jQuery与其它库冲突的解决方法
2010/06/25 Javascript
基于jquery的横向滚动条(滑动条)
2011/02/24 Javascript
Jquery中val()表单取值赋值的实例代码
2013/08/15 Javascript
使用CSS和jQuery模拟select并附提交后取得数据的代码
2013/10/18 Javascript
Javascript模拟加速运动与减速运动代码分享
2014/12/11 Javascript
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
2015/12/31 Javascript
jQuery插件扩展操作入门示例
2017/01/16 Javascript
Vue.js -- 过滤器使用总结
2017/02/18 Javascript
vue.js事件处理器是什么
2017/03/20 Javascript
node作为中间服务层如何发送请求(发送请求的实现方法详解)
2018/01/02 Javascript
JavaScript中Array方法你该知道的正确打开方法
2018/09/11 Javascript
浅谈webpack+react多页面开发终极架构
2018/11/11 Javascript
js里面的变量范围分享
2020/07/18 Javascript
vue实现选中效果
2020/10/07 Javascript
python妹子图简单爬虫实例
2015/07/07 Python
总结网络IO模型与select模型的Python实例讲解
2016/06/27 Python
python取数作为临时极大值(极小值)的方法
2018/10/15 Python
Python实现爬取网页中动态加载的数据
2020/08/17 Python
45个非常奇妙的CSS3 特性应用示例
2012/01/01 HTML / CSS
CSS3 中的@keyframes介绍
2014/09/02 HTML / CSS
精致的手工皮鞋:Shoe Embassy
2019/11/08 全球购物
机修工岗位职责
2013/11/24 职场文书
十佳党员事迹材料
2014/08/28 职场文书
农村文化建设标语
2014/10/07 职场文书
终止解除劳动合同证明书
2015/06/17 职场文书
幼儿园六一主持词
2015/06/30 职场文书
《为人民服务》教学反思
2016/02/20 职场文书