Vue js 的生命周期(看了就懂)(推荐)

Vue.js的生命周期

Vue.js 的生命周期是指从 Vue 实例创建、运行到销毁的整个过程,主要包括以下几个阶段:

  1. 创建阶段(Initialization):

    • beforeCreate:实例刚在内存中创建出来,但还未初始化 data、methods、computed、watcher 等属性和对象,因此无法访问 data、methods、computed、watcher 等属性和对象
    • created:完成了数据初始化,可以访问 data、methods、computed、watcher 等属性和对象
  2. 模板编译(Template Compilation):将模板编译为虚拟 DOM

    • beforeMount:虚拟 DOM 已经在内存中创建出来,但还未挂载到页面中的真实 DOM 上
    • mounted:虚拟 DOM 成功渲染到页面上,已经可以访问到渲染好的 HTML 结构,也可以通过 ref 获取挂载的元素,还可以进行 AJAX 请求和定时器等操作
  3. 节点更新(Node Updating):当数据改变时,重新渲染节点的过程

    • beforeUpdate:在数据更新之前触发,在这个阶段无法访问到更新后的数据,只能访问到更新前的数据
    • updated:在数据更新之后触发,需要注意的是不要在 updated 钩子中修改数据,否则会陷入死循环
  4. 卸载阶段(Destroy):Vue 实例销毁后,清理工作阶段

    • beforeDestroy:Vue 实例销毁之前会调用 beforeDestroy 钩子函数,可以在这个阶段进行一些清理工作
    • destroyed:Vue 实例已经销毁,无法再访问 Vue 实例的任何属性和方法,这个阶段可以进行一些解绑操作

示例说明1:利用生命周期钩子函数显示组件渲染的时间

<template>
  <div>
    <p>这是我的第一个组件</p>
    <p>{{ time }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      time: ""
    };
  },
  beforeCreate() {
    console.log("组件即将创建");
  },
  created() {
    console.log("组件已经创建");
    setInterval(() => {
      var date = new Date();
      var time = date.toLocaleTimeString();
      this.time = '当前时间:' + time;
    }, 1000);
  },
  beforeMount() {
    console.log("组件即将挂载");
  },
  mounted() {
    console.log("组件已经挂载");
  },
  beforeUpdate() {
    console.log("组件即将更新");
  },
  updated() {
    console.log("组件已经更新");
  },
  beforeDestroy() {
    console.log("组件即将销毁");
  },
  destroyed() {
    console.log("组件已经销毁");
  }
};
</script>

示例说明2:利用生命周期钩子函数获取数据和调用 AJAX 请求

<template>
  <div class="users">
    <ul>
      <li v-for="user in users" :key="user.id">{{ user.name }}</li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      users: []
    };
  },
  beforeCreate() {
    console.log("组件即将创建");
  },
  created() {
    console.log("组件已经创建");
    axios.get("https://jsonplaceholder.typicode.com/users").then(response => {
      console.log(response.data);
      this.users = response.data;
    });
  },
  beforeMount() {
    console.log("组件即将挂载");
  },
  mounted() {
    console.log("组件已经挂载");
  },
  beforeUpdate() {
    console.log("组件即将更新");
  },
  updated() {
    console.log("组件已经更新");
  },
  beforeDestroy() {
    console.log("组件即将销毁");
  },
  destroyed() {
    console.log("组件已经销毁");
  }
};
</script>

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue js 的生命周期(看了就懂)(推荐) - Python技术站

(0)
上一篇 2023年5月29日
下一篇 2023年5月29日

相关文章

  • 编写v-for循环的技巧汇总

    编写v-for循环是Vue.js的核心特性之一,它是用于渲染组件和列表的重要技巧。本攻略将为您详细讲解编写v-for循环的技巧,并提供使用示例。 使用v-for渲染列表 下面是一个简单的使用v-for渲染列表的示例: <template> <div> <ul> <li v-for="(item, index…

    Vue 2023年5月29日
    00
  • Vue3 编译流程-源码解析

    Vue3 编译流程-源码解析是指 Vue3 在运行时,将模板字符串编译成渲染函数的过程。本文将介绍 Vue3 编译流程的完整攻略,包括模板编译过程、编译原理等。 模板编译过程 模板编译开始在编译开始时,Vue3 会将传入的模板字符串解析成 AST(抽象语法树),然后调用 compile 函数,进行对模板的编译。 编译组件在编译组件时,Vue3 会调用 com…

    Vue 2023年5月27日
    00
  • vue中forEach循环的使用讲解

    当我们使用Vue.js来开发我们的web应用时,经常需要处理数据的遍历或是循环。在Vue.js中,我们可以通过forEach()方法来对一个数组进行循环,本文将从以下几个方面来讲解vue中forEach循环的使用方法: forEach()的基础使用方法 在Vue.js中使用forEach()进行数组循环 遍历对象时使用forEach()的注意事项 1. fo…

    Vue 2023年5月27日
    00
  • vue-以文件流-blob-的形式-下载-导出文件操作

    下面是详细的讲解“vue以文件流blob的形式下载导出文件操作”的完整攻略,包括原理、实现步骤以及示例说明。 一、原理 在前端中,可以通过blob对象来导出文件,同时,也可以通过axios库将数据流转化为blob对象,再进行导出,这个流程涉及到以下几个步骤: 用户发起下载文件的请求 前端向服务器发送请求,获取要导出的文件数据 前端将数据流转化为blob对象 …

    Vue 2023年5月27日
    00
  • antd-DatePicker组件获取时间值,及相关设置方式

    下面是Antd-DatePicker组件获取时间值及相关设置方式的完整攻略。 获取时间值 Antd-DatePicker组件可以方便地获取用户选择的日期或时间。你可以使用onChange回调函数来获取所选日期或时间值。 下面是一个例子,当用户选择日期时,会将所选日期值打印出来: import { DatePicker } from ‘antd’; funct…

    Vue 2023年5月29日
    00
  • vue计算属性时v-for处理数组时遇到的一个bug问题

    当使用 Vue.js 中计算属性时,我们可能会遇到一个问题,即在使用 v-for 渲染数组时,计算属性的计算结果会受到数组项顺序的影响,导致计算结果不正确。这个问题可以通过对计算属性进行优化来解决。 首先,我们可以看一下一个示例程序,它使用 v-for 和一个计算属性来渲染一个数组: <!– 在模板中使用 v-for 渲染一个数组,使用计算属性计算数…

    Vue 2023年5月29日
    00
  • 理解Proxy及使用Proxy实现vue数据双向绑定操作

    理解 Proxy 在 JavaScript 中,对象是一种引用类型,对象的属性只是指向变量的一个指针。因为这个特性,我们可以获得代理模式的能力:在对象创建之后,可以创建一个代理来控制对象的访问或操作。 Proxy 对象用于定义基本操作的自定义行为(如属性查找,赋值,枚举,函数调用等)。这样,我们可以在读取或修改对象属性时插入其他逻辑,例如数据绑定。 在使用 …

    Vue 2023年5月28日
    00
  • vue 的 Render 函数

    Vue 的 Render 函数是Vue.js中最为重要的一个概念之一。它是Vue.js实现动态渲染的核心技术之一,向用户提供了更加灵活的数据操作和视图渲染方法,能够极大提高Vue应用的性能和灵活性。在下面的内容中,我将详细讲解Vue的Render函数,包括定义、用法、参数及示例等相关内容。 1. 定义 Render函数是用来定义Vue中组件的虚拟DOM的函数…

    Vue 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部