vue 的学习笔记二

本文是关于Vue组件生命周期的学习笔记,详细介绍了初始化阶段、运行阶段(数据更新阶段)和销毁阶段的各个生命周期钩子函数,包括beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy和destroyed等,以及在不同阶段可以执行的操作,如数据初始化、DOM渲染、数据变更后的视图更新等。
摘要由CSDN通过智能技术生成

vue 的学习笔记二 🍨

一.理解 vue 的生命周期 🏷

答: vue组件实例 ,从 创建 到 销毁 的全过程

二. vue 生命周期的 三大阶段 🤔

vue 生命周期函数: vue 框架提供的内置函数,自动按次序执行.

作用: 特点的时间,执行特点的操作

比如: 组件创建完毕后,可以在 created 生命周期函数 ,发起 Ajax 请求,初始化 data 中的数据.

分类: 三大阶段📖 8个方法🗻 (完整11个方法)

image-20221009155103126

第一阶段(初始阶段): 结合数据,结合模板,渲染数据

第二阶段(运行阶段): 数据改变,视图更新

第三阶段(销毁阶段): vue组件实例 销毁 (v-if=“true”)


1.初始化阶段: 数据初始化 和 DOM渲染🍶

数据初始化期间 钩子函数: beforeCreate , created

  • beforeCreate: 在实例初始化之后,进行数据侦听和事件/侦听器的配置之前同步调用。
  • created: 在实例创建完成后被立即同步调用。此时可以 : 发起网络请求, 或者操作: 数据侦听、计算属性、方法、事件/侦听器的回调函数。
<script>
	export default {
    data () {
      return {
        msg: '加载成功!'
      }
    },
    // 初始化基础事件,初始化 生命周期
    beforeCreate () {
      // data 数据还没有初始化完成,此时 vue实例上没有绑定数据
      console.log('beforeCreate', this.msg) // undefined
    },
    // 初始化数据
    // 数据是写在 data () 中, return 出来的数据
    // 必然在这个阶段,执行了 data 函数, 得到数据源
    // 将数据源挂到 vue 实例上, 将来才能 this.xxx 访问
    Created () {
   		// data 数据初始化完成,此时 vue实例上绑定好了数据
      console.log('created', this.msg) // 加载成功!
    },
  }
</script>

new Vue() => (.vue文件) ==> (构建) vue实例对象 (每一个 vue组件都是 可复用的vue 实例)

Vue ==> 构造函数

Vue.prototype.xxx ==> vue 原型时添加 属性/方法 (在 vue 原型 上 创建 一个 ,将来可供所有的 .vue 文件使用 属性或方法)


DOM渲染期间 钩子函数: beforeMount , mounted

  • beforeMount: 在挂载开始之前被调用:相关的 render 函数首次被调用。
  • mounted: 实例被挂载后调用,但是不保证所有的子组件也都被挂载完成。必要时 可以 配合 $nextTick 进行默写操作.
    如下所示:
// html 代码
<p ref='myP'>
  国庆七天乐?
</p>
// js 部分
beforeMount () {
	// dom 渲染之前, 不能操作 dom 元素
	console.log(this.$refs.myP.innerText) // undefined
},
mounted () {
	// dom 结构渲染之后,可以开始操作 dom 元素
	console.log(this.$refs.myP.innerText) //  国庆七天乐?
}

2.运行阶段(数据更新阶段–数据变化,视图更新)🎃

更新阶段 钩子函数: beforeUpdate , updated

  • beforeUpdate : dom 还没有更新出来
  • updated: dom 已经更新完成了

vue 是异步更新 dom 的,不会立刻更新;

当主线程执行完,积累了一定的更新,

基于新的数据,

生成新的虚拟dom新的虚拟dom旧的虚拟dom 对比,

对比出差异, 进行差异化更新

3.缓存阶段

keep-alive 包裹的组件,当切换显示时,组件不会销毁,而是缓存下来, 这里会 有两个钩子函数被触发

activateddeactivated

  • activated:被 keep-alive 缓存的组件激活时调用。
  • deactivated: 被 keep-alive 缓存的组件失活时调用。在这里插入图片描述

4.销毁阶段(实例销毁阶段)🏕

钩子函数: beforeDestroy , destroyed

  • beforeDestroy :实例销毁之前调用。在这一步,实例仍然完全可用。
  • destroyed :实例销毁后调用。该钩子被调用后,对应 Vue 实例的所有指令都被解绑,所有的事件监听器被移除,所有的子实例也都被销毁。

1.vue组件销毁 前/后, 会自动释放 侦听器监听,子组件,事件侦听…
2.有一些不是 vue 内置的功能,有时就需要 手动释放(定时器,延时器,服务器资源)

5.(错误)捕获阶段

钩子函数: errorCaptured
官方解释:
在捕获一个来自后代组件的错误时被调用。此钩子会收到三个参数:错误对象、发生错误的组件实例以及一个包含错误来源信息的字符串。此钩子可以返回 false 以阻止该错误继续向上传播。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海424

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值