vue钩子函数有哪些含义

Vue钩子函数是一组在Vue实例从创建到销毁的过程中自动执行的函数。这些钩子函数包括:beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy和destroyed 。

Vue钩子函数的作用是什么?

在 Vue.js 中,钩子函数是一系列在特定时机自动执行的函数,它们允许我们在 Vue 实例的不同生命周期阶段或特定的事件触发时执行一些操作,Vue 提供了几个内置的钩子函数,如 beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy、destroyed 和 activated,我们还可以在组件中自定义钩子函数,本文将详细介绍 Vue 钩子函数的作用及其使用方法。

vue钩子函数有哪些含义

生命周期钩子函数

1、beforeCreate:在实例初始化之后,数据观测 (data observer) 和 event/watcher 事件配置之前被调用,在这个阶段,实例已完成以下的配置:数据观测(data observer),属性和方法的运算,watch/event 事件回调,挂载阶段还没开始,$el 属性目前不可见。

new Vue({
  el: 'app',
  data: {
    message: 'Hello Vue!'
  },
  beforeCreate: function() {
    console.log('beforeCreate');
  }
});

2、created:在实例创建完成后被立即调用,在这一步,实例已完成以下的操作:数据观测 (data observer),属性和方法的运算,watch/event 事件回调,然而挂载阶段还没开始,$el 属性目前不可见,你可以在这里访问到 DOM。

vue钩子函数有哪些含义

new Vue({
  el: 'app',
  data: {
    message: 'Hello Vue!'
  },
  created: function() {
    console.log('created');
  }
});

3、beforeMount:在挂载开始之前被调用:相关的 render 函数首次被调用,模板已经被转换成真实的 DOM,挂载开始之前,不会发生插入操作,如果你需要在此阶段改变数据,你需要手动触发更新。

new Vue({
  el: 'app',
  data: {
    message: 'Hello Vue!'
  },
  beforeMount: function() {
    console.log('beforeMount');
  }
});

4、mounted:el 陈旧的引用现在仍然有效,如果根实例挂载到了一个文档内的元素上,当 mounted 被调用时 vnode.el 现在包含了正确的DOM节点,如果挂载点的选择器是动态的,那么当 mountedHook 为 true 并且选择了正确的元素后才会被调用,注意,只有根实例会触发该钩子,如果一个组件有多个根节点,每个节点都会触发该钩子,在该钩子内部可以进行一些 DOM操作。

vue钩子函数有哪些含义

new Vue({
  el: 'app',
  data: {
    message: 'Hello Vue!'
  },
  mounted: function() {
    console.log('mounted');
    el = this.$el; // 确保 el 是当前 Vue 实例对应的 DOM $el
    el.textContent = this.message; // 将 message 的内容设置为 DOM $el textContent
  }
});

5、beforeUpdate:数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前,可以在该钩子中进一步地更改状态,并防止不必要的重渲染,需要注意的是,由于这个钩子在响应式系统之外执行的,所以它不会触发视图更新,你应该使用 nextTick 在更新后手动调用视图更新方法来确保新的虚拟 DOM 已准备好渲染,同时避免在此处执行耗时的计算。

new Vue({
  el: 'app',
  data: {
    _message: 'Hello Vue!' // 注意这里使用 _message 而不是 message 避免不必要的计算和视图更新
  },
  beforeUpdate: function() {
    _message = 'Hello Vue!'; // 仅修改响应式数据的值,不触发视图更新和打补丁过程
    vm.$forceUpdate(); // 确保视图更新和打补丁过程立即执行以反映最新的虚拟 DOM 结果(仅用于开发环境)
    vm._message = 'Hello Vue!'; // 仅修改非响应式数据的值,不触发视图更新和打补丁过程(仅用于开发环境)
    vm.$nextTick(function() {}); // 确保视图更新和打补丁过程在下次DOM更新循环中执行(适用于生产环境)
    vm.$emit('input', _message); // 通过 $emit 实现双向绑定更新父组件中的数据(仅适用于开发环境)
    vm.$nextTick(function() {}); // 确保视图更新和打补丁过程在下次DOM更新循环中执行(适用于生产环境)
    vm.$emit('update', _message); // 通过 $emit 实现双向绑定更新父组件中的数据(仅适用于开发环境)
    vm.$nextTick(function() {}); // 确保视图更新和打补丁过程在下次DOM更新循环中执行(适用于生产环境)
    vm.$emit('patch', _message); // 通过 $emit 实现双向绑定更新父组件中的数据(仅适用于开发环境)
    vm.$nextTick(function() {}); // 确保视图更新和打补丁过程在下次DOM更新循环中执行(适用于生产环境)
    vm.$emit('input-mask', _message); // 通过 $emit 实现双向绑定更新父组件中的数据(仅适用于开发环境)
    vm.$nextTick(function() {}); // 确保视图更新和打补茨过程在下次DOM更新循环中执行(适用于生产环境)
    vm.$emit('change', _message); // 通过 $emit 实现双向绑定更新父组件中的数据(仅适用于开发环境)

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/263170.html

Like (0)
Donate 微信扫一扫 微信扫一扫
K-seo的头像K-seoSEO优化员
Previous 2024-01-25 18:32
Next 2024-01-25 18:34

相关推荐

  • vue怎么实现分页

    Vue实现表格分页的方法有很多,这里我们介绍一种简单的方法:使用vue-pagination库,首先需要安装这个库:npm install vue-pagination --save然后在项目中引入并注册这个组件:import Vue from 'vue';import Pagination from 'vue-pagination'……

    2024-01-20
    0242
  • 如何在JavaScript中获取AS(ActionScript)的值?

    ### 使用JavaScript获取值的详细指南在网页开发中,JavaScript是一种非常强大的工具,它允许开发者与用户交互、操作文档对象模型(DOM)以及执行各种复杂的逻辑,获取值是JavaScript中一个基本且常见的任务,无论是从HTML表单元素还是从其他DOM元素,本文将详细介绍如何使用JavaScr……

    帮助中心 2024-11-16
    02
  • vue怎么给html元素加类选择器

    Vue.js 是一个用于构建用户界面的渐进式框架,它允许开发者使用组件化的方式来构建复杂的单页应用,在 Vue 中,我们可以使用 v-bind:class 或者简写为 :class 来动态地为 HTML 元素添加类选择器,这种方式可以让我们在不改变 HTML 结构的情况下,根据数据的变化来改变元素的样式,下面我们详细介绍如何在 Vue……

    2024-01-04
    0128
  • vue给标签属性赋值

    您可以使用v-bind指令来绑定属性。如果您想要将一个名为“message”的变量绑定到一个名为“msg”的属性上,您可以使用以下语法:,,``html,,``

    2023-12-30
    0119
  • vue路由懒加载如何实现

    Vue路由懒加载可以通过以下三种方式实现:1. Vue异步组件;2. ES6标准语法 import();3. webpack的require,ensure()。import()是推荐使用的方式 。

    2024-01-25
    0198
  • vue自定义过滤器的语法

    Vue如何自定义过滤器?在Vue中,过滤器是一种特殊的函数,它可以在模板中使用,以对数据进行处理,过滤器可以用在任何需要格式化数据的地方,例如日期、金额等,本文将介绍如何在Vue中自定义过滤器,1、定义过滤器函数我们需要定义一个过滤器函数,这个函数接收两个参数:原始值和待处理的字符串,在函数内部,我们可以对原始值进行处理,然后返回处理后的字符串。

    2023-12-24
    0108

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入