vue3 Composition API(二):computed,watchEffect,watch

本文详细探讨了Vue3的Composition API,包括computed属性的使用,如何停止和清除watchEffect的监听,以及watch的多种用法,如侦听单个和多个数据源、深度监听等,帮助开发者更好地理解和掌握Vue3的状态管理。
摘要由CSDN通过智能技术生成

computed


01_computed的使用.vue

<template>
  <div>
    <h2>{
  { fullName }}</h2>
    <button @click="changeName">修改firstName</button>
  </div>
</template>

<script>
  import {
      ref, computed } from "vue";

  export default {
     
    setup() {
     
      const firstName = ref("Kobe");
      const lastName = ref("Bryant");

      // 1.用法一: 传入一个getter函数
      // computed的返回值是一个ref对象
      const fullName = computed(() => firstName.value + " " + lastName.value);

      // 2.用法二: 传入一个对象, 对象包含getter/setter
      const fullName = computed({
     
        get: () => firstName.value + " " + lastName.value,
        set(newValue) {
     
          const names = newValue.split(" ");
          firstName.value = names[0];
          lastName.value = names[1];
          // [firstName.value, lastName.value] = names
        },
      });

      const changeName = () => {
     
        // firstName.value = "James"
        fullName.value = "haha xixi";
      };

      return {
     
        fullName,
        changeName,
      };
    },
  };
</script>

<style scoped></style>

侦听数据的变化


watchEffect


02_watchEffect基本使用.vue

<template>
  <div>
    <h2>{
  { name }}-{
  { age }}</h2>
    <button @click="changeName">修改name</button>
    <button @click="changeAge">修改age</button>
  </div>
</template>

<script>
  import {
      ref, watchEffect } from "vue";

  export default {
     
    setup() {
     
      // watchEffect: 自动收集响应式的依赖
      const name = ref("why");
      const age = ref(18);

      const changeName = () => (name.value = "kobe");
      const 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值