Vue 状态管理:从Vuex到Pinia,Vue 3官方推荐的状态管理库深度解析

大家好,我是前端宝哥。

在编程界有句老话:“命名和缓存失效是世上两大难题。” 我得说,在现代Web应用的状态管理上,这难题得排第三!

今天,咱们来深挖一下Vue的状态管理之道,并介绍一个超直观的解决方案——Pinia。

Vue状态管理:那些坑和局限性

自Vue 2起,我们用data属性来定义组件的状态,就像这样:

<template>
  <div>{
   { user.name }}</div>
</template>

<script>
export default {
  data() {
    return { user: { name: 'John', age: 25 } };
  }
};
</script>

这就是所谓的 选项 API,在Vue 3中依然可用。Vue 3还带来了 组合式 API,它用reactiveref等新招数来定义状态。用这新API,我们可以这样写组件脚本:

<script setup>
import { reactive } from 'vue'

const user = reactive({ name: 'John', age: 25 });
</script>

但如果要跨组件访问状态,比如在导航栏显示用户名,在个人资料页展示详细信息,这就尴尬了。通常,我们用props逐层传递,但层级一多,就得在每个组件里加props,不管用不用得上。这叫prop 穿透,真不推荐。

更新共享数据时,子组件不能直接改props,得发事件让父组件来更新,再传下去。这...感觉有点笨。

Vue 3的救星来了:组合式 API 让我们能在任何脚本里用refreactive,还能导出状态,整个应用都能用。

我们可以把这状态叫做存储 (store)。比如,创建个store/user.js

import { reactive } from 'vue
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值