computed 计算属性和watch

1.前面我们知道计算属性computed: 当我们的某些属性是依赖其他状态时,我们可以使用计算属性来处理

  • 在前面的Options API中,我们是使用computed 选项来完成的;
  • 在Compostion API中,我们可以在setup函数中使用computed 方法来编写一个计算属性;
<template>
<div id="app">
<h2 ref="name">{{fullName}}</h2>
</div>
</template>
<script>
import {ref,computed} from 'vue'
export default {
  setup(){
  const fristName=ref("jiang")
  const lasttName=ref("zhang")
//1.计算属性用法1:传入一个getter函数
//computed 的返回值是一个ref对象
  const fullName=computed(()=>{
    fristName.value+lasttName.value
  })
//2.计算属性用法2:传入一个对象,对象包含getter和setter 方法
const fullName=computed({
get:()=> fristName.value+lasttName.value,
set(newValue){
const names=newValue.split("");//修改值
last.value=names[0]
}
})
const changeNage=()=>{
//fristName.value="haha",
fullName.value="jiangyi"
}
  return {
   fullName
    }
    }
  }
</script>

侦听数据的变化Watch

1.在options API中,我们可以通过watch 选项来侦听data或者props的数据变化,当数据变化时执行某一些操作。

2.在Compostion API中,我们可以使用watchEffect和watch来完成响应式数据的侦听;

  •    watch和watchEffect 用于自动收集响应式数据的依赖;
  •    watch需要手动置顶侦听的数据来源

WatchEffect :

  •   首先,watchEffect传入函数会被立即执行一次,并且在执行的过程中会收集依赖;
  •   其次,只有收集的依赖发生变化时watchEffect传入的函数才会在次执行。

 WatchEffect 停止侦听:

 案例:当计数器达到25的,watchEffect就停止侦听

  WatchEffect 清除副作用:

  • 比如在开发中我们需要在侦听函数中执行网络请求,但是在网络请求还没有达到的时候,我们执行了侦听器,或者侦听器函数侦听函数被再次执行了。
  • 那么上次的网络请求应该被取消掉,这个时候我们就可以清除上一次的副作用

在我们给watchEffect 传入的函数被回调时,其实可以获取到一个参数:OnInvalidate

  • 当副作用即将重新执行或者侦听器被停止时会执行该函数传入的回调函数;
  • 我们可以在传入的回调函数中,执行一些清楚工作;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值