news 2026/9/12 10:39:21

Vue3使用pinia做全局状态管理的简单示例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Vue3使用pinia做全局状态管理的简单示例

一、插件版本:

"pinia": "^2.0.23",

"pinia-plugin-persist": "^1.0.0",

"vue": "^3.4.27"

二、store目录

src/store/index.ts

import type { App } from 'vue'; import { createPinia } from 'pinia'; import piniaPersist from 'pinia-plugin-persist'; const store = createPinia(); store.use(piniaPersist); export function setupStore(app: App<Element>) { app.use(store); } export { store };

src/store/tableStore.ts

import { Ref, ref } from 'vue'; import { defineStore } from 'pinia'; import { store } from '@/store'; export interface ITableStoreState { tableRef: Ref; list: Map<any, any>[]; } export const tableOrgStore = defineStore({ id: 'tableOrganization', state: (): ITableStoreState => ({ tableRef: ref(), list: [], }), persist: { enabled: true, }, getters: { getList(): ITableStoreState['list'] { return this.list; }, }, actions: { setList(info: ITableStoreState['list']) { this.list = info; }, }, }); // Need to be used outside the setup export function useTableStoreWidthOut() { return tableOrgStore(store); }

三、main.ts

。。。省略。。。 // 挂载状态管理 setupStore(app); 。。。省略。。。

四、在main.ts所在项目的任意组件中使用:

import { storeToRefs } from 'pinia'; import { useTableStoreWidthOut } from '@/store/modules/tableStore'; const tableStore = useTableStoreWidthOut(); const { tableRef, getList } = storeToRefs(tableStore); // 响应式数据使用storeToRefs包裹再解构获取 const { setList } = tableStore; // function方法直接解构获取

使用tableRef示例:

<template> <button @click="handleClick">click</button> <my-list ref="tableRef" /> </template> <script lang="ts" setup> import { storeToRefs } from 'pinia'; import { useTableStoreWidthOut } from '@/store/modules/tableStore'; import MyList from './MyList.vue'; const tableStore = useTableStoreWidthOut(); const { tableRef } = storeToRefs(tableStore); // 响应式数据使用storeToRefs包裹再解构获取 const handleClick = () => { console.log('===tableRef====', tableRef); }; </script>

五、参考资料

https://pinia.vuejs.org/core-concepts/

https://prazdevs.github.io/pinia-plugin-persistedstate/zh/guide/

https://cn.vuejs.org/api/application.html

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/11 5:41:26

孙宇晨、赵长鹏拿下巴基斯坦“入场券”?揭秘加密监管新棋局

“赵长鹏、孙宇晨同时斩获巴基斯坦加密牌照”——2025年12月中旬&#xff0c;这条消息在Web3圈迅速发酵。社交平台上&#xff0c;有人将其解读为“加密巨头征服南亚市场的里程碑”&#xff0c;也有人好奇&#xff1a;这个曾明令禁止加密交易的国家&#xff0c;为何突然向两大行…

作者头像 李华
网站建设 2026/9/12 1:09:38

LobeChat结构化数据标记生成

LobeChat结构化数据标记生成 在企业级AI应用日益普及的今天&#xff0c;一个普遍存在的矛盾逐渐浮现&#xff1a;底层大语言模型的能力越来越强&#xff0c;但普通用户甚至开发者仍然难以高效、稳定地从中获取可用的结构化输出。我们经常看到这样的场景——产品经理让AI“生成一…

作者头像 李华
网站建设 2026/9/11 13:16:23

bWAPP漏洞靶场实战教程

bWAPP漏洞靶场实战教程 一、bWAPP概述 1.1 什么是bWAPP bWAPP&#xff08;Buggy Web Application&#xff09;是一个集成了100种Web漏洞的PHP/MySQL靶场&#xff0c;由安全专家Malik Mesellem开发。它专为Web安全学习、演示和测试设计&#xff0c;是极佳的教学工具。 1.2 核心特…

作者头像 李华
网站建设 2026/9/12 2:27:00

LobeChat中秋节文化营销内容

LobeChat&#xff1a;开源AI聊天框架的技术演进与场景创新 在智能对话系统加速渗透日常生活的今天&#xff0c;用户对AI助手的期待早已超越“能聊几句”的初级阶段。人们希望它不仅能理解上下文、调用工具、保护隐私&#xff0c;还能融入具体业务场景&#xff0c;成为真正意义上…

作者头像 李华
网站建设 2026/9/12 5:34:11

从入门到精通:RAG技术解决LLM幻觉问题,程序员必学干货

RAG(检索增强生成)技术有效解决大语言模型(LLM)的"幻觉"问题。通过检索从知识库获取相关信息&#xff0c;增强(A)原始问题&#xff0c;最后生成(G)基于事实的精准答案。适用于实时信息、特定领域知识或高准确性场景&#xff0c;借助文本分块和向量化技术提高检索精准…

作者头像 李华
网站建设 2026/9/12 0:47:52

LobeChat反向代理配置指南(Nginx/Caddy)

LobeChat反向代理配置指南&#xff08;Nginx/Caddy&#xff09; 在大语言模型&#xff08;LLM&#xff09;技术迅速普及的今天&#xff0c;越来越多开发者希望将类 ChatGPT 的交互能力集成到自有系统中。LobeChat 作为一款功能丰富、开源且高度可扩展的 Web 聊天界面&#xff0…

作者头像 李华