keyL‘s blog keyL‘s blog
首页
  • 前端文章

    • JavaScript
    • Vue
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《TypeScript 从零实现 axios》
    • 小程序笔记
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub

key L

前端界的小学生
首页
  • 前端文章

    • JavaScript
    • Vue
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《TypeScript 从零实现 axios》
    • 小程序笔记
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub
  • 基础

    • MVVM模式
    • 生命周期
      • Demo
      • 生命周期图示
    • 计算属性 vs 方法 vs 侦听属性
    • v-if vs v-show
    • 列表渲染之数组、对象更新检测
  • 组件

  • 过渡&动画

  • 可复用性&组合

  • 工具

  • 规模化

  • Vuex

  • 其他

  • 《Vue》笔记
  • 基础
lyc
2020-02-04

生命周期

# 实例生命周期钩子

实例生命周期钩子 API

简单理解,生命周期钩子函数就是 vue 实例在某一个时间点会自动执行的函数。

<div id="app">{{msg}}</div>

<script src="https://cdn.bootcss.com/vue/2.4.2/vue.js"></script>
<script>
	var vm = new Vue({
		el: "#app",
		data: {
			msg: "Vue的生命周期",
		},
		beforeCreate: function() {
			console.group("------beforeCreate创建前状态------");
			console.log("el     : " + this.$el); //undefined
			console.log("data   : " + this.$data); //undefined
			console.log("msg: " + this.msg); //undefined
		},
		created: function() {
			console.group("------created创建完毕状态------");
			console.log("el     : " + this.$el); //undefined
			console.log("data   : " + this.$data); //已被初始化
			console.log("msg: " + this.msg); //已被初始化
		},
		beforeMount: function() {
			console.group("------beforeMount挂载前状态------");
			console.log(this.$el); // <div id="app">{{msg}}</div> 挂载前状态
		},
		mounted: function() {
			console.group("------mounted 挂载结束状态------");
			console.log(this.$el); // <div id="app">Vue的生命周期</div>   msg内容被挂载并渲染到页面
		},
		// 当data被修改之前
		beforeUpdate: function() {
			console.group("beforeUpdate 更新前状态===============》");
			console.log("el     : " + this.$el);
			console.log(this.$el);
			console.log("data   : " + this.$data);
			console.log("msg: " + this.msg);
		},
		// 触发beforeUpdate之后,虚拟DOM重新渲染并应用更新
		// 当data被修改之后
		updated: function() {
			console.group("updated 更新完成状态===============》");
			console.log("el     : " + this.$el);
			console.log(this.$el);
			console.log("data   : " + this.$data);
			console.log("msg: " + this.msg);
		},
		// 调用vm.$destroy() 销毁前
		beforeDestroy: function() {
			console.group("beforeDestroy 销毁前状态===============》");
			console.log("el     : " + this.$el);
			console.log(this.$el);
			console.log("data   : " + this.$data);
			console.log("msg: " + this.msg);
		},
		// 调用vm.$destroy() 销毁后
		destroyed: function() {
			console.group("destroyed 销毁完成状态===============》");
			console.log("el     : " + this.$el);
			console.log(this.$el);
			console.log("data   : " + this.$data);
			console.log("msg: " + this.msg);
		},
	});
</script>
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

# Demo

See the Pen 生命周期钩子 by lyc (@lyc) on CodePen.

# 生命周期图示

编辑
上次更新: 2020/12/28, 20:12:00
MVVM模式
计算属性 vs 方法 vs 侦听属性

← MVVM模式 计算属性 vs 方法 vs 侦听属性→

最近更新
01
TypeScript笔记
10-08
02
CSS教程和技巧收藏
08-11
03
Vuex
08-08
更多文章>
Theme by Vdoing | Copyright © 2019-2021 key L | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式