pinia学习的博文
学习记录的一些博文:
都是一些最最基础的操作,实际场景比这个复杂
其中提到了pinia-plugin-persist 来持久化存储
里面提及:storeToRefs用法
最为详细,全面
里面订阅状态相关的看不懂
持久化的简单demo
直接上了一个ts demo
- layout.js
import { defineStore } from 'pinia';
// useLayout 也称为 id,是必要的,Pinia 使用它来将 store 连接到 devtools。 将返回的函数命名为 use... 是跨可组合项的约定,以使其符合你的使用习惯。
export const useLayoutStore = defineStore('main', {
// 是一个箭头函数
state: () => {
return {
counter: 'holle',
}
},
getters: {},
actions: {
setCounter() {
this.counter = '你好'
}
}
})
- app.vue
<template>
<div>
<div>{{ counter }}</div>
<button v-on:click="change">改变</button>
</div>
</template>
<script setup>
import { useLayoutStore } from "./store/layout";
import { storeToRefs } from "pinia";
// 如果想通过结构的方式拿到store数据就必须通过storeToRefs API去包裹,才能维持响应式数据
const layoutStore = useLayoutStore();
const { counter } = storeToRefs(layoutStore);
const change = () => {
// 这里支持直接修改
//layoutStore.counter = "你好";
// OR --同时修改多个时使用
// layoutStore.$patch({
// counter: "你好",
// });
// // OR --同时修改多个时使用
// layoutStore.$patch((store) => {
// store.counter = "你好";
// });
// // OR 通过 actions 内部写方法修改变量
layoutStore.setCounter();
};
</script>
相信坚持的力量,日复一日的习惯.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2019-04-12 array_values