带你一文了解Vue生命周期钩子

带你一文了解Vue生命周期钩子

Vue生命周期钩子是指Vue在组件实例化、数据更新、渲染页面等不同阶段执行的方法。这些钩子函数对于理解Vue的生命周期非常重要,因为他们使得我们有机会在特定时间节点执行自己的代码。

Vue生命周期的三个阶段

Vue的生命周期可以分为三个主要的阶段:

  1. 创建阶段(Creation):在这个阶段Vue实例化组件、设置数据观测、初始化事件等操作。
  2. 更新阶段(Update):当组件的数据发生改变时进入此阶段,触发重新渲染页面。
  3. 销毁阶段(Destruction):这个阶段处理组件销毁前的善后工作,比如清理定时器,取消事件绑定等。

Vue生命周期内部钩子函数

每个Vue实例在生命周期内都会自动地运行一些函数,我们被称之为生命周期钩子,下面是Vue生命周期的所有内部钩子函数:

  1. beforeCreate:在Vue实例化组件之后、数据观测之前执行的,此时 this 指向 Vue 实例本身,其他的钩子函数中 this 都指向了组件上下文。
  2. created:在实例化后,数据观测等数据操作完成,可以进行各种操作但是无法进行dom操作和vue组件渲染操作。
  3. beforeMount:在Vue把模板渲染成html ,并将其插入页面之前执行。
  4. mounted:在Vue把模板渲染成html ,并将其插入页面后执行。可以进行各种dom操作,实例已经挂载完成。
  5. beforeUpdate:在数据更新时执行,这个阶段不允许更改数据。
  6. updated:在数据更新完成并且页面已经重新渲染之后执行,这个阶段允许更改页面和状态,但不能发起新的数据请求。
  7. activated:当使用keep-alive的时候,组件使活跃状态时执行。
  8. deactivated:当使用keep-alive的时候,组件使非活跃状态时执行。
  9. beforeUnmount:在组件销毁之前执行。
  10. unmounted:在组件销毁之后和其它清理工作完成后执行。

生命周期钩子的正确使用

使用生命周期钩子可以允许我们做一些有趣的功能。例如,当创建一个Vue实例时,我们也可以在 beforeCreate 阶段发起一个数据请求。

下面是两个简单的生命周期钩子的示例:

1. 示例:在 created 阶段执行操作

代码:

<template>
  <div>
    <h1>{{ title }}</h1>
  </div>
</template>
<script>
  export default {
    data() {
      return {
        title: '',
      };
    },
    created() {
      // 发起请求
      fetch('https://api.example.com/title')
        .then((response) => response.text())
        .then((title) => {
          this.title = title;
        });
    },
  };
</script>

解释:在组件实例化后、数据观测前,Vue会自动调用 created 函数。这个时候我们可以来发起一个数据请求,并且在请求返回后用title属性保存请求结果,最终再在模板中使用。

2. 示例:在 mounted 阶段执行操作

代码:

<template>
  <div>
    <button @click="increaseCount">点击我增加计数器</button>
    <p>计数器的值为 {{ count }}</p>
  </div>
</template>
<script>
  export default {
    data() {
      return {
        count: 0,
      };
    },
    methods: {
      increaseCount() {
        this.count++;
      },
    },
    mounted() {
      // 在模板渲染到页面上之后,绑定一个事件监听器,当计数器到达20的时候弹出提示框
      document.addEventListener('count-is-20', () => {
        alert('计数器已经到达20了!恭喜!');
      });
    },
    updated() {
      // 在更新阶段时判断计数器是否为20,如果是则触发事件,弹出提示框
      if (this.count === 20) {
        document.dispatchEvent(new Event('count-is-20'));
      }
    },
  };
</script>

解释:在 mounted 阶段,Vue会自动把组件渲染的HTML插入到页面DOM中,这时我们可以来进行各种dom操作。在这个示例中,我们通过向 document 添加事件监听器 count-is-20 来监测计数器的更新,当计数器计数到 20 时弹窗提示。注意,我们在 updated 阶段验证计数器是否达到 20,因为这是一个数据变更的事件钩子。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:带你一文了解Vue生命周期钩子 - Python技术站

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

相关文章

  • Vue函数式组件-你值得拥有

    “Vue函数式组件-你值得拥有” 是一个关于 Vue 函数式组件的完整攻略,下面是详细讲解: 前言 Vue.js 是一个非常流行的 Web 开发框架,它的组件化开发模式成为了 Vue.js 最受欢迎的特性之一。我们日常开发中,经常会使用组件来构建复杂的页面,但是一些简单的组件其实并不需要完整的 Vue 实例,这时候,我们就可以使用 Vue 函数式组件来优化性…

    Vue 2023年5月28日
    00
  • Vue3实战学习配置使用vue router路由步骤示例

    下面我将为你详细讲解“Vue3实战学习配置使用vue router路由步骤示例”的完整攻略,包含以下几个方面的内容: 理解Vue Router 安装和配置Vue Router 路由配置选项解析 示例说明 1. 理解Vue Router Vue Router是Vue.js官方的路由管理器,它和Vue.js框架深度集成,可以非常便捷地实现单页面应用(SPA)的路…

    Vue 2023年5月28日
    00
  • 脚手架(vue-cli)创建Vue项目的超详细过程记录

    脚手架(vue-cli)创建Vue项目的超详细过程记录 什么是 Vue-cli Vue-cli 是一个命令行工具,通过它可以快速创建新的 Vue 工程。Vue-cli 其实是一个基于 Node.js 的命令行工具,封装了 Vue.js 相关的项目创建流程,可以帮助我们快速的创建一个 Vue.js 项目。 安装 Vue-cli 在安装 Vue-cli 之前,首…

    Vue 2023年5月27日
    00
  • Vue中保存数据到磁盘文件的方法

    保存数据到磁盘文件通常需要后端来完成,但是在一些简单的场景下,我们可以直接使用前端技术来实现。下面我将介绍两种在Vue中保存数据到磁盘文件的方法。 使用axios向后端发送请求保存数据 在Vue中,我们可以借助axios实现向后端发送请求保存数据的操作。具体步骤如下: 引入axios <script src="https://cdn.jsde…

    Vue 2023年5月28日
    00
  • vue项目打包之后接口出现错误的问题及解决

    下面是详细讲解“vue项目打包之后接口出现错误的问题及解决”的完整攻略。 问题描述 在Vue项目中,如果在打包后的代码中,接口出现错误,一般表现为接口请求异常或返回错误码等问题。此时需要对接口请求重新进行检查,确保代码和服务器都没有问题。 原因分析 接口出问题一般有以下几种原因: 1.请求的接口地址不正确,导致接口无法请求成功。 2.请求的参数不正确,导致接…

    Vue 2023年5月28日
    00
  • vue3组合API中setup、 ref、reactive的使用大全

    Vue 3 组合式 API 中 setup、ref、reactive 的使用大全 Vue 3 是 Vue.js 的最新版本,全面升级了组件系统并引入了新的组合 API,使得 Vue.js 在开发复杂应用时更加灵活可维护。其中 setup、ref、reactive 是 Vue 3 组合式 API 中最常用的三个方法,可以帮助我们快速地实现组件的数据响应式和逻辑…

    Vue 2023年5月28日
    00
  • 一篇文章带你吃透Vuex3的状态管理

    一篇文章带你吃透Vuex3的状态管理 什么是Vuex Vuex是一个专为Vue.js应用程序开发的状态管理模式。它采用集中式存储管理各组件共享的一些状态,使得状态管理变得简单而且容易理解。它的主要作用是用于管理Vue.js应用中的各种状态。 Vuex的结构 Vuex包含5个部分: State:用于存储状态变量 Mutation:用于改变state中的值 Ac…

    Vue 2023年5月27日
    00
  • 分享9个Vue的巧妙冷技巧

    下面是分享9个Vue的巧妙冷技巧的完整攻略: 分享9个Vue的巧妙冷技巧 1. 利用v-model双向绑定 v-model是Vue的一个指令,可以在表单元素上进行双向数据绑定。可以用v-model实现一个简单的计数器应用。 <template> <div> <button @click="increment"…

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