vue3知识点3vue的生命周期和钩子函数、计算属性、侦听器

本文详细介绍了Vue3的生命周期,包括created、mounted、updated和unmounted等钩子函数,强调了在不同阶段执行任务的适宜时机。此外,文章讲解了计算属性和函数的差异,指出计算属性的缓存特性及其在数据变化时的高效性,并讨论了何时使用计算属性和侦听器。最后,给出了具体的代码示例。
摘要由CSDN通过智能技术生成

#vue3知识点3vue的生命周期和钩子函数、计算属性、侦听器

前言

本节知识点主要是生命周期那几个函数,计算属性和侦听器。

Vm

我们要搞清楚vue的实例对象是谁,vue3中创建vue实例时这个vm就是。然后再连接上视图层,vm.mount("#app")。

const vm = Vue.createApp({
   
			  data() {
   
			    return data
			  },
			
			})
vm.mount('#app')

而不是连写的,这样写这个vm不是实例对象。

const vm = Vue.createApp({
   }).mount('#app')

当把data绑定到vm实例对象上之后,也就是创建了vue实例之后,data的数据也就属于vm对象的了,vm也可以调用data里面的属性。Vm.msg=data.msg

// vm.msg=data.msg
	console.log(vm.msg,"----vm")//hello
	console.log(data.msg,"----data")//hello

注意:vm.msg在钩子函数里报错的话,改this,data 在哪用都可以。

this用于在vue实例里面调用data的数据 this.msg=data.msg

vue的函数中this指向的是vue实例,也就是vm,所以根据上述,this就可以调用data。

视图层
<h4>{
   {
   hello}}</h4>

数据层
data={
   
    msg:'hello'
}

vm实例
const vm=Vue.createApp({
   })
vm.mount('#app')

// vm.$data:等同于data对象
	console.log(vm.$data,"---$data")//{msg: "hello"}

生命周期钩子函数

在我们创建完vue实例对象后,会执行这几个函数。它们的位置和data平级。

生命周期定义:

浅显说法:data里的变量在什么情况下开始存在,在什么情况下会被从内存删除,失效。

或者做项目时data不是写死的,而是从服务器传过来的。

如果需要从服务器端(数据库)得到数据返回msg的值给前端,所以需要知道什么时候从服务器获取数据:

比如:要在程序刚运行的时候就要获取数据,其实是从Vue框架刚刚建立的时候需要获取数据,即create vue的时候,要写在created里面。

初始化函数created 和mounted

都是在vue框架的实例对象刚刚初始化的时候就执行 ,在实例创建完成之后立即调用。

created

数据层(data)已经和vue实例对象绑定,与视图

Vue 3 中,生命周期钩子函数的命名和使用方式有所变化。下面是一些常用的生命周期钩子函数及其对应的 Vue 3 写法: - `beforeCreate` -> 使用 `setup()` 函数来初始化数据和设置侦听器,此时实例还未被创建。 - `created` -> 在 `setup()` 函数中进行更多的初始化工作,此时实例已被创建。 - `beforeMount` -> 使用 `onBeforeMount` 函数来注册在挂载之前要执行的逻辑。 - `mounted` -> 使用 `onMounted` 函数来注册在挂载之后要执行的逻辑。 - `beforeUpdate` -> 使用 `onBeforeUpdate` 函数来注册在更新之前要执行的逻辑。 - `updated` -> 使用 `onUpdated` 函数来注册在更新之后要执行的逻辑。 - `beforeUnmount` -> 使用 `onBeforeUnmount` 函数来注册在卸载之前要执行的逻辑。 - `unmounted` -> 使用 `onUnmounted` 函数来注册在卸载之后要执行的逻辑。 Vue 3 中还引入了一些新的生命周期钩子函数: - `beforeUnmount` -> 使用 `onBeforeUnmount` 函数来注册在卸载之前要执行的逻辑。 - `unmounted` -> 使用 `onUnmounted` 函数来注册在卸载之后要执行的逻辑。 - `errorCaptured` -> 使用 `onErrorCaptured` 函数来注册在捕获错误时要执行的逻辑。 需要注意的是,Vue 3 中的生命周期钩子函数不再作为实例方法,而是作为普通函数进行注册。例如: ```javascript import { onBeforeMount, onMounted, onBeforeUpdate, onUpdated, onBeforeUnmount, onUnmounted, onErrorCaptured } from 'vue'; // 在 setup() 函数中注册生命周期钩子 setup() { onBeforeMount(() => { // 在挂载之前执行的逻辑 }); onMounted(() => { // 在挂载之后执行的逻辑 }); onBeforeUpdate(() => { // 在更新之前执行的逻辑 }); onUpdated(() => { // 在更新之后执行的逻辑 }); onBeforeUnmount(() => { // 在卸载之前执行的逻辑 }); onUnmounted(() => { // 在卸载之后执行的逻辑 }); onErrorCaptured((error) => { // 错误捕获逻辑 }); } ``` 通过使用这些生命周期钩子函数,你可以在 Vue 3 中控制组件的初始化、挂载、更新、卸载等不同阶段的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值