Vue3生命周期函数和方法详解

Vue3生命周期函数和方法详解

生命周期函数

Vue3中的生命周期函数有如下:

beforeCreate

在实例准备被创建之前,也就是数据观测和初始化事件还没开始的时候触发。在这个阶段无法获取到 data 和 methods 中的数据。此时我们可以在此阶段中做一些初始化的操作,如全局变量的初始化。

export default {
  beforeCreate() {
    console.log('beforeCreate')
  }
}

created

在实例完成了数据观测、属性和方法的运算、初始化事件之后被触发,此时可以访问到 data 和 methods 收集了依赖的数据。

export default {
  created() {
    console.log('created')
  }
}

beforeMount

在挂载开始之前被调用:相关的 render 函数已经完成了编译,并且可以访问到真实的 DOM。在此时我们可以做一些准备工作,如:获取 DOM 元素的大小进行计算。

export default {
  beforeMount() {
    console.log('beforeMount')
  }
}

mounted

在挂载结束后被调用,此时组件已经被挂载到 DOM 中。我们可以在这个函数中对挂载好的 DOM 元素进行一些修改,比如添加样式等。

export default {
  mounted() {
    console.log('mounted')
  }
}

beforeUpdate

在数据更新时调用,但是此时组件还没有更新,我们可以在此时进行一些操作,比如获取更新前的 DOM 元素的信息。

export default {
  beforeUpdate() {
    console.log('beforeUpdate')
  }
}

updated

在组件更新完毕之后被调用。此时我们可以操作更新后的 DOM 元素。

export default {
  updated() {
    console.log('updated')
  }
}

beforeUnmount

在实例被卸载之前调用,此时实例完全可以被调用和访问。在这个函数中我们可以做一些清理工作,比如接触事件绑定,清除定时器等。

export default {
  beforeUnmount() {
    console.log('beforeUnmount')
  }
}

unmounted

在组件被卸载后调用。此时 Vue 实例中的所有资源都被释放,包括该实例绑定到的所有事件和监听器。此时实例已经无法访问,任何操作都将报错。

export default {
  unmounted() {
    console.log('unmounted')
  }
}

常用方法

watch

watch 用于监听数据变化并执行一些操作。其语法如下:

watch: {
    'data属性名'(newVal, oldVal) {
        // do something...
    }
}

示例:

export default {
  data() {
    return {
      count: 0
    }
  },
  watch: {
    'count': function (newVal, oldVal) {
      console.log(`count的值已经从 ${oldVal} 更新为 ${newVal}`)
    }
  }
}

computed

computed 用于实时监测该属性的变化,与 watch 不同的是,computed 属性是基于它们的依赖进行缓存的,只有在它们的依赖项改变时才会重新求值。

computed: {
    doubledCount() {
        return this.count * 2
    }
}

示例:

export default {
  data() {
    return {
      count: 0
    }
  },
  computed: {
    doubledCount() {
      return this.count * 2
    }
  }
}

以上就是 Vue3 生命周期函数和常用方法的详细介绍。

两个示例:

示例1

<template>
  <div>
    <p>count: {{ count }}</p>
    <p>doubledCount: {{ doubledCount }}</p>
    <button @click="increment">Increment</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      count: 0
    }
  },
  computed: {
    doubledCount() {
      return this.count * 2
    }
  },
  methods: {
    increment() {
      this.count++
    }
  }
}
</script>

在上面的代码中,我们监听了 count 的值的变化。

示例2

<template>
  <div>
    <p>count: {{ count }}</p>
    <button @click="increment">Increment</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      count: 0
    }
  },
  watch: {
    count(newVal, oldVal) {
      console.log(`count 的值已经从 ${oldVal} 更新为 ${newVal}`)
    }
  },
  methods: {
    increment() {
      this.count++
    }
  }
}
</script>

在上面的代码中,我们使用 watch 监听了 count 变量的值的变化,并在变化时输出了新旧值。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue3生命周期函数和方法详解 - Python技术站

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

相关文章

  • vite搭建vue2项目的实战过程

    首先,我们需要先了解一下Vite和Vue2的基础概念。 Vite是一个新型前端构建工具,它能够在开发环境下实现秒级启动的开发服务,使用Vue2的话需要安装vite@^1.0.0版本。Vue2是目前最流行的前端MVVM框架之一,我们可以使用它来构建前端项目。 那么,接下来就是使用vite搭建Vue2项目的实战过程了。 第一步:安装vite 使用yarn或npm…

    Vue 2023年5月28日
    00
  • 在Vant的基础上封装下拉日期控件的代码示例

    下面我就为你详细讲解一下“在Vant的基础上封装下拉日期控件的代码示例”的完整攻略。 1. 准备工作 在封装下拉日期控件之前,需要先准备好项目的开发环境以及需要使用的工具和框架。下面是具体步骤: 使用vue-cli创建一个vue项目,可以在终端中执行如下命令: vue create my-project 安装Vant UI框架,可以在终端中执行如下命令: n…

    Vue 2023年5月29日
    00
  • vue+springboot+element+vue-resource实现文件上传教程

    下面是详细的“vue+springboot+element+vue-resource实现文件上传教程”的完整攻略: 1. 前端实现 1.1. 安装vue-resource npm install vue-resource –save 1.2. 引入element-ui 并引入element-ui中的el-upload组件来实现文件上传功能 import {…

    Vue 2023年5月28日
    00
  • Vue项目中最新用到的一些实用小技巧

    接下来我将向你介绍Vue项目中最新用到的一些实用小技巧。 1. 使用.sync修饰符简化父子组件通信 在Vue中,组件之间的通信非常重要。在父子组件之间通信时,父组件传递数据给子组件是很常见的一种情况。我们通常会使用props来传递数据,并且在子组件中通过$emit来触发父组件中的方法来达到通信的目的。但是,这种方法不太方便,因为在父组件中需要手动监听$em…

    Vue 2023年5月28日
    00
  • Vue.set()和this.$set()使用和区别

    Vue.js是一款流行的JavaScript框架,提供了许多便利的方法来管理及操作我们的应用程序。其中Vue.set()和this.$set()方法是非常重要的,可以在Vue.js中非常方便地实现响应式数据的创建和更新。 Vue.set()与this.$set()的使用 Vue.set() Vue.set()是Vue.js中的全局函数,可以通过在组件实例中使…

    Vue 2023年5月28日
    00
  • this在vue和小程序中的使用详解

    this在vue和小程序中的使用详解 在Vue和小程序中,this指向的对象在不同的上下文中可能会有所不同,因此正确理解和使用this关键字非常重要。在本文中,将对Vue和小程序中this的用法进行详细的解释和说明,同时给出一些示例来加深理解。 Vue中的this 在Vue中,我们经常需要在组件的生命周期、方法和计算属性等中使用this。在Vue组件中,th…

    Vue 2023年5月27日
    00
  • vue2.0 + element UI 中 el-table 数据导出Excel的方法

    当使用 Vue2.0 + Element UI 开发项目时,我们有时需要将 el-table 的数据导出为 Excel 文件,以方便用户进行数据的离线查看和分析。下面是在 Vue2.0 + Element UI 中实现 el-table 数据导出 Excel 的具体步骤: 步骤一:引入文件 首先,需要引入以下文件: <script src="…

    Vue 2023年5月29日
    00
  • 一文详解Vue3响应式原理

    一文详解Vue3响应式原理 前言 Vue.js作为前端框架的代表之一,其响应式原理一直是其独特的魅力所在。Vue3中,响应式原理进行了一些重大调整和改进,本文将详细讲解Vue3响应式原理及其实现过程。 响应式原理 Vue的响应式原理是基于ES6中Object.defineProperty()的getter和setter方法实现的。Vue3在这个基础上,引入了…

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