前端知识框架 前端知识框架
首页
基础
框架
插件
Node
地图
更多
前端须知
  • 分类
  • 标签
  • 归档

BestIdea

首页
基础
框架
插件
Node
地图
更多
前端须知
  • 分类
  • 标签
  • 归档
  • SVG图标组件
  • vue性能
  • vue中使用less全局变量
  • 路由懒加载
  • 生命周期
    • 若异步引入呢
    • 若有孙组件呢
    • 父子组件顺序总结:
  • 双向绑定原理
  • 微信网页开发
  • 微信小程序开发(uni-app)
  • 微信小程序开发
  • 微信小程序入门
  • 0与3.0项目对比
  • 预渲染
  • 组件通信方式
  • Vue3.x组合式编程
  • 从零搭建 vite+vue3+ts+pinia 框架
  • Vue-iClient3D-WebGL入门文档
  • Vite常用配置
  • 框架
Btzh
2022-03-26
目录

生命周期

# 生命周期

activated :keep-alive 组件激活时调用。

使用vue-router时有时需要使用来缓存组件状态

这个时候created钩子就不会被重复调用了,如果我们的子组件需要在每次加载的时候进行某些操作,可以使用activated钩子触发。

deactivated :keep-alive 组件停用时调用。

// 调用 beforeCreate 之前,数据初始化并未完成

beforeCreate: function () {

  // el 和 data 均没有初始化。

  // data、props、methods 这些属性无法访问到,

},

// 在这之间就是调用 initState() 进行初始化 props / data / method / watch / methods

// 初始化顺序:props、methods、data

created: function () {

  // 初始化完成 可以访问 props / data / method / watch / methods

  // 但这时候并未完成 dom 的挂载,因此无法访问 dom

  // 如果需要某些数据获取完成才允许进入页面的场景,建议在路由钩子beforeRouteEnter中实现
},

beforeMount: function () {

  // 这个时候虽然页面没有显示,但已经用虚拟 Dom 占了坑,但是还未挂载到 dom  

},

mounted: function () {

  // 直到调用 vm.$mount() 才是dom的挂载(mounted 不会承诺所有的子组件也都一起被挂载 nextTick) 

  // vue 不允许直接挂载到 body 或页面文档上

  // 最终会将 template 解析成 render 函数 生成虚拟 dom(render 作用主要是生成 虚拟 dom)

  // 将 vnode 转换为真实 DOM,并且更新到页面中

  // 这个时候页面已经显示。(结束)

},

beforeUpdate: function () {

  // 更新前,获取的是更新前的各种状态

  // 此时新的虚拟DOM已经生成,避免在这个钩子函数中操作数据

  // 监听组件数据,一旦发生变化,触发 beforeUpdate 生命钩子

},

updated: function () {

  // 更新后,获取到的状态已是最新

  // 可以执行依赖于 DOM 的操作,避免在这个钩子函数中操作数据
},

beforeDestroy: function () {
  
  // 常用于:销毁定时器、解绑全局事件、销毁插件对象

},

destroyed: function () {

  // 实例的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71

# 父子组件生命周期顺序

父组件beforeCreated

父组件created

父组件beforeMounted

子组件beforeCreated

子组件created

子组件beforeMounted

子组件mounted

父组件mounted

# 若异步引入呢

父组件的 beforeCreate、created、beforeMount、mounted

然后子组件的 beforeCreate、created、beforeMount、mounted

# 若有孙组件呢

父组件先 beforeCreate => created => beforeMount

然后子组件开始 beforeCreate => created => beforeMount

然后孙组件 beforeCreate => created => beforeMount => mounted

孙组件mounted,子组件mounted,父组件再mounted

# 父子组件顺序总结:

父组件先创建,然后子组件创建;子组件先挂载,然后父组件挂载

上次更新: 2022/05/05, 17:47:41
路由懒加载
双向绑定原理

← 路由懒加载 双向绑定原理→

最近更新
01
webpack打包替换类名命名空间
05-01
02
Vite常用配置
02-26
03
crypto前端加密
01-18
更多文章>
Theme by Vdoing | Copyright © 2022-2024
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式