Vue 3.4 新特性详解:Composition API 与 Effect 作用域 API 实战

一、Vue 3.4 核心特性概览

Vue 3.4 代号「🏀 Slam Dunk」,带来多项关键升级:

  • 模板解析器性能翻倍:单文件组件(SFC)构建效率提升 44%,解析速度提升 2 倍。
  • 响应式系统优化:计算属性和 watchEffect 触发更精准,减少无效渲染。
  • Effect 作用域 API 稳定:通过 effectScopeonScopeDispose 实现副作用的细粒度管理,解决内存泄漏痛点。
  • defineModel 宏成熟:简化 v-model 组件开发,支持修饰符语法。

本文结合实战案例,深度解析 Composition API 与 Effect 作用域 API,助你提升代码组织能力与开发效率。

二、Composition API 核心能力实战

2.1 响应式数据管理

基础类型与复杂对象的选择
  • ref:用于基础类型(如数字、字符串),返回带 .value 的响应式引用:
    <script setup>  
    import { ref } from 'vue'  
    const count = ref(0) // 基础类型响应式  
    </script>  
    
  • reactive:用于对象/数组,返回响应式代理:
    <script setup>  
    import { reactive } from 'vue'  
    const state = reactive({ user: { name: 'Alice' }, todos: [] }) // 复杂数据响应式  
    </script>  
    
响应式解构:保持数据关联

通过 toRefs 解构对象,避免失去响应式:

<script setup>  
import { reactive, toRefs } from 'vue'  
const state = reactive({ score: 100, user: { name: 'Bob' } })  
const { score, user } = toRefs(state) // 解构后属性仍为响应式  
</script>  

2.2 组合函数:逻辑复用的「瑞士军刀」

将可复用逻辑封装为独立函数,提升代码复用性。

示例:带本地存储的计数器
// usePersistedCounter.js  
import {
   
    ref, watch, onMounted } from 'vue'  
export function usePersistedCounter(key, initialValue = 0) {
   
     
  const count = ref(initialValue)  
  // 加载本地数据  
  onMounted(() => {
   
     
    const stored = localStorage.getItem(key)  
    if (stored) count.value = parseInt(stored)  
  })  
  // 保存数据到本地  
  watch(count, (val) => localStorage.setItem(key, val.toString
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魏大帅。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值