IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 浅谈Vue生命周期 -> 正文阅读

[JavaScript知识库]浅谈Vue生命周期

定义:

从组件诞生到销毁的全过程。

四个过程; 初始化---------->挂载----------------->更新---------------------->销毁

八大周期:beforeCreated---------------------->Created-------------------->beforeMount-------------->

Mount------------------->beforeDestory------------------------->Destory

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

初始化

1.beforeCreated

在这个阶段会初始化一些东西,初始化data中的数据,methods中的方法,计算属性computed,以及this的指向等。

2.Created

初始化完毕,可以使用data中的数据,methods中的方法。

挂载

3.beforeMount

在这个阶段里面,会把模板给编译完成,这也是最后一次对data中的数据进行更改的机会,因为马上就要去进行挂载。

4.Mount

找到容器,挂载到页面上,此时可以对DOM进行操作了。

更新

5.beforeUpdated

当数据发生更新的时候,这个周期会进行一些相应的操作,会产生一份新的虚拟节点,和上一份虚拟节点最大化的进行对比,以完成最大程度地渲染。

6.Updated

页面中的data此时是最新的了。

销毁

7.beforeDestory

在这个阶段,为组件的销毁前做准备,组件还没有完全的得到销毁,任然可以使用到DOM。

8.Destory

组件销毁。

过代码来看生命周期

<template>
  <div class="">
    <h1 ref="aa">{{ messasge }}</h1>
    <button @click="fn">点击</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      messasge: "张三",
    };
  },
  // 初始化之前
  beforeCreate() {
    console.log(this.messasge, "初始化数据阶段");
  },
  // 初始化完毕
  created() {
    console.log(this.messasge, "初始化好了");
  },
  // 挂载前,对数据的最后一次进行更改,编译完毕,马上将要挂载
  beforeMount() {
    console.log(this.messasge, "编译完毕,将要进行挂载");
    console.log(this.$refs.aa.innerHTML, "还没有进行挂载,获取不了");
  },
  // 编译完毕,将要去实现挂载
  mounted() {
    console.log(this.$refs.aa.innerHTML, "能够获取到真实的DOM");
  },
  beforeUpdate() {
    // 当data里面的数据发生更新的时候,产生一份虚拟节点他,通过diff算法完成最大化的渲染,
    console.log(
      this.$refs.aa.innerHTML,
      "通过diff算法比对准备更新,数据还是之前的"
    );
  },
  updated() {
    //data里面的数据和页面中此时是最新的了。
    console.log(this.$refs.aa.innerHTML, "更新完的");
  },
  beforeDestroy() {
    //为组件的销毁前做一些准备
    console.log("销毁前最后的挣扎");
  },
  Destroyed() {
    console.log("组件得到销毁");
    // 组件已经完全销毁
  },
  name: "",
  methods: {
    fn() {
      this.messasge = 22222222;
    },
  },
};
</script>

<style scoped></style>

view图:

? ?

总结:

在beforeCreated进行初始化一些methods方法,data里面的数据,computed里面的计算属性。

在Created里面能够使用data里面的数据和methods的方法了。

在beforeMount里面进行编译,此时模板已经编译完成,但没有进行挂载。

在Mount里面挂载完成,能够获取到真实的DOM

在beforeUpdated里面,当数据更新的时候新的Vnode和旧的Vnode会进行对比,通过Diff算法完成最优化的处理,渲染出Dom。

在Updated阶段,此时数据已经更新完毕,data里面的数据是最新的了。

在beforeDestory阶段,此时在为销毁前做一些准备,组件还是能够使用的。

在Destory阶段,组件已经完全得到销毁。

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-08 07:59:01  更:2022-05-08 08:02:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:12:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码