Vue生命周期中的八个钩子函数相机

Vue生命周期中的八个钩子函数是Vue组件在创建、挂载、更新、销毁过程中执行的钩子函数。这些钩子函数在Vue组件中起到了重要的作用,以便开发者在这些组件生命周期的不同时期进行不同的操作。这八个钩子函数分别是:

  1. beforeCreate:在Vue实例被创建后,数据观测 (data observer) 和 event/watcher 事件配置之前被调用。
  2. created:在Vue实例创建完成后立即调用该钩子函数。此时,实例已完成以下配置:数据观测(data observer)、属性和方法的运算、watch/event事件回调。同时,挂载阶段还没有开始,$el属性为undefined,所以不能访问DOM元素。
  3. beforeMount:在挂载开始之前被调用。该钩子函数中调用vm.$el生成虚拟dom。
  4. mounted:在挂载结束后调用。此时DOM已经完成渲染,mounted钩子函数中经常用来进行一些初始化操作,如数据请求,页面计时等。当组件DOM更新时,mounted不会被调用,可以使用updated进行页面更新的操作。
  5. beforeUpdate:在组件更新之前调用。该钩子函数中的操作不能进行响应式的数据改变,否则可能会导致无限循环的更新。一般用于更新数据之前的数据处理。
  6. updated:在组件DOM更新完成之后调用。此时组件进行了数据更新并且DOM元素已经完成了重新渲染。因此,可以在这个钩子中访问更新后的DOM状态。
  7. beforeDestroy:在实例销毁之前调用。这个钩子中,实例仍然完全可用。可以用来在实例被销毁之前,进行资源的清理工作,如定时器的销毁,事件的解绑等。
  8. destroyed:在实例销毁之后调用,在这个钩子函数中,实例的所有指令,组件等已经被解绑。

下面通过两个示例说明生命周期的使用:

首先,我们通过beforeCreate和created两个生命周期,对vue实例的data进行初始化。代码如下:

<template>
  <div>
    {{ message }}
  </div>
</template>

<script>
export default {
  data () {
    return {
      message: ''
    }
  },
  beforeCreate () {
    console.log('beforeCreate', this.message) // 输出 undefined
  },
  created () {
    console.log('created', this.message) // 输出 ''
    this.message = 'Hello, Vue!'
  }
}
</script>

在上面的代码中,beforeCreate和created两个钩子函数都用来对Vue实例中的data进行初始化。其中,beforeCreate钩子函数中打印的this.message输出undefined,说明在beforeCreate钩子执行的时候,data中的变量还未被初始化;而在created钩子函数中,this.message输出'',说明created钩子函数执行时,data中已经完成了初始化。同时,我们在created钩子中修改了data中的message,使其变为了'Hello, Vue!',这个值会被渲染到模板中。

第二个示例是在mounted钩子函数中,请求页面数据并渲染。代码如下:

<template>
  <div>
    <div v-for="item in items" :key="item.id">
      {{ item.text }}
    </div>
  </div>
</template>

<script>
export default {
  data () {
    return {
      items: []
    }
  },
  mounted () {
    this.$http.get('/api/items').then(res => {
      this.items = res.data
    })
  }
}
</script>

在上面的代码中,我们在mounted钩子函数中发送了一次ajax请求,从后台获取到了数据,并将其赋值给了data中的items项。由于mounted钩子函数在页面渲染完成后执行,所以在这个钩子中可以直接对DOM元素进行操作。其中,我们使用了Vue的$http插件,发送了一次get请求,并将返回值中的data赋值给了data中的items,然后在模板中使用v-for指令,遍历items数组中的每一项,并进行渲染。这样,页面就能够在渲染完成后,通过ajax请求获取到数据并进行动态渲染。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue生命周期中的八个钩子函数相机 - Python技术站

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

相关文章

  • Vue.js和Vue.runtime.js区别浅析

    Vue.js和Vue.runtime.js区别浅析 在学习 Vue.js 时,我们经常听到“Vue.js”和“Vue.runtime.js”这两个术语。这两个概念的区别是什么呢?在本文中,我们将对此进行深入探讨。 Vue.js Vue.js 是一个创建 Web 应用程序的开源 JavaScript 框架。Vue.js 的核心是一个响应式的数据绑定系统和一个组…

    Vue 2023年5月29日
    00
  • 解决vue数组中对象属性变化页面不渲染问题

    下面是针对“解决vue数组中对象属性变化页面不渲染问题”的完整攻略: 问题背景 使用Vue的开发者肯定知道,当我们在vue组件中有一个数组,其中包含多个对象,而对象的属性发生变化时,页面并不会自动渲染。这是因为Vue根据需求,只会追踪到绑定的属性,而不会追踪到对象本身。 比如我们有如下示例代码: <template> <div> &l…

    Vue 2023年5月28日
    00
  • js前端埋点监控解析

    JS前端埋点监控解析 什么是前端埋点监控? 前端埋点是从用户的角度出发,对于前端页面的一些行为事件进行统计信息收集,通过收集用户在页面使用的行为数据,来统计用户行为和页面性能等信息,有利于后续的数据分析和性能优化。 前端埋点监控则是通过前端技术手段对前端页面的一些行为事件进行捕捉、监控和分析的过程。前端埋点监控分知享主动埋点和被动埋点两种方式,主动埋点需要在…

    Vue 2023年5月28日
    00
  • TSX常见简单入门用法之Vue3+Vite

    TSX是指将JSX语法与Typescript结合起来使用的技术。TSX通常用于开发React和Vue等现代Web框架。下面我将详细讲解如何使用TSX开发Vue3项目,基于Vite打包工具。整个过程包含以下几步: 安装所需依赖 在开始使用TSX开发Vue3之前,我们需要安装相关的依赖包。在我们的项目中先安装vue和@vue/compiler-sfc两个依赖。 …

    Vue 2023年5月28日
    00
  • Vue学习之组件用法实例详解

    Vue学习之组件用法实例详解 1. 组件的定义与引用 组件是一种抽象的概念,它可以将一些共用的逻辑和界面封装起来,形成一个独立的组件,供其他部分进行复用。在Vue中,组件既可以全局注册,也可以按需注册。 1.1 全局注册组件 全局注册组件是指在Vue实例化之前定义好组件,这样后面的任何Vue实例都可以使用这个组件。 Vue.component(‘compon…

    Vue 2023年5月27日
    00
  • vue中设置滚动条方式

    我来给您详细讲解一下vue中设置滚动条方式的完整攻略,以下是具体步骤: 1. 引入第三方滚动条库 Vue原生并不提供滚动条相关的API,因此我们需要借助第三方库来添加滚动条组件。这里我推荐使用perfect-scrollbar,这是一个轻量级的滚动条插件,使用简单。 我们可以在项目中使用npm安装该插件: npm install perfect-scroll…

    Vue 2023年5月29日
    00
  • vue实现点击按钮倒计时

    下面我就为你讲解“Vue实现点击按钮倒计时”的完整攻略。 前置知识:Vue的生命周期函数 实现倒计时需要对Vue的生命周期函数有一定的了解。常用的生命周期函数有 beforeCreate, created, beforeMount, mounted, beforeUpdate, updated, beforeDestroy, destroyed。其中,mou…

    Vue 2023年5月29日
    00
  • VUE 组件转换为微信小程序组件的方法

    下面是关于VUE组件转换为微信小程序组件的方法的完整攻略。 1. 确认需要转换的组件 首先需要明确需要转换的组件类型和功能,确认需要转换的组件以及该组件的功能是否可以在微信小程序中实现,以及是否需要对样式和布局进行修改。 2. 安装相关依赖 使用 mpvue-loader 和 postcss-mpvue-wxss 进行vue组件转微信小程序组件的开发,需要安…

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