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

yizhihongxing

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日

相关文章

  • Vue filter介绍及详细使用

    Vue filter介绍及详细使用攻略 1. 什么是Vue filter Vue filter是Vue的一个功能,在Vue组件模板中使用{{ someData | filterName }}的方式,可以对一些字符串、数字、日期等进行处理,返回新的字符串、数字、日期等内容。可以用于格式化展示数据、处理一些业务逻辑等。 2. 如何定义Vue filter 在Vu…

    Vue 2023年5月28日
    00
  • 有关vue 组件切换,动态组件,组件缓存

    关于Vue组件切换和缓存的相关问题,我可以为您提供如下攻略: 动态组件 Vue提供了一种动态切换组件的机制,就是使用动态组件。使用dynamic <component>标签,可以在同一个挂载点上动态地切换不同的组件: <!– 动态组件 –> <component v-bind:is="currentComponen…

    Vue 2023年5月28日
    00
  • vue静态配置文件不进行编译的处理过程(在public中引入js)

    那么首先我们来介绍一下什么是Vue静态配置文件。Vue.js是一个用于构建用户界面的JavaScript框架,它允许我们在单个页面应用程序中创建可重用的组件。在Vue中,我们有一个叫做Vue CLI的工具,可以用它来配置我们的Vue项目,包括路由、Webpack等,其中就包括了Vue的静态配置文件。 Vue的静态配置文件是指在项目的根目录下的vue.conf…

    Vue 2023年5月28日
    00
  • Vue自定义指令v-focus实例详解

    Vue自定义指令v-focus实例详解: 自定义指令是Vue中重要的一种拓展方式,可以用来封装常用的操作,比如事件绑定、样式切换等等。v-focus就是一个简单的自定义指令,用于在元素被插入到页面中时,自动获得焦点。 下面,我们来详细讲解如何创建v-focus指令。 创建v-focus指令 在Vue中注册一个全局指令很简单,只需调用Vue.directive…

    Vue 2023年5月29日
    00
  • vue全局数据管理示例详解

    Vue全局数据管理示例详解 Vue是一个流行的JavaScript框架,用于构建交互式的Web应用程序。在Vue中,数据管理是非常重要的一个方面。Vue提供了不同的方式来管理各种不同类型的数据,包括本地数据、API请求和服务器数据等。 Vuex 在Vue中,我们可以使用Vuex来管理全局数据。Vuex是一个Vue.js专用的状态管理库,它提供了一种集中存储共…

    Vue 2023年5月28日
    00
  • vue长列表优化之虚拟列表实现过程详解

    标题:Vue长列表优化之虚拟列表实现过程详解 1. 前言 在处理Vue中长列表(包含大量子组件)时,当数据更新时,会造成较大的性能问题。因此,为了提高Vue应用的性能,我们通常会做一些长列表的优化。其中,虚拟列表技术是一种高效的长列表优化方法。本文旨在介绍Vue中如何利用虚拟列表技术实现长列表优化。 2. 虚拟列表实现过程详解 2.1 什么是虚拟列表 虚拟列…

    Vue 2023年5月29日
    00
  • 项目中一键添加husky实现详解

    下面是项目中一键添加Husky实现的完整攻略示例,分为如下几个步骤: 步骤一:初始化项目 首先,我们需要创建一个新项目并初始化它。我们可以通过以下命令创建并初始化一个名为“my-project”的新项目。 mkdir my-project cd my-project npm init -y 这个命令会创建一个名为“my-project”的文件夹,并初始化一个…

    Vue 2023年5月28日
    00
  • vue实现在线预览office文件的示例代码

    下面是详细讲解“Vue实现在线预览Office文件的示例代码”的攻略。 问题背景 在很多场合下,我们需要在线预览Office文件,为方便用户,我们可以在网站上实现在线预览。如何实现呢?这里给出一种基于Vue的实现思路。 实现步骤 安装ViewerJS ViewerJS是一个支持在线观看PDF、ODT、ODS、ODP等文件格式的开源项目。我们可以使用它来实现在…

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