当前位置: 首页 > news >正文

Vue3中使用Pinia(封装并统一导出)

1.创建vue项目

pnpm create vue
npm init vue@latest

2.安装持久化插件

pnpm add pinia-plugin-persistedstate -D

3.mian.js中导出pinia 默认vue已经导入

import './assets/main.css'import { createApp } from 'vue'
import App from './App.vue'
import pinia from "@/store/index";
const app = createApp(App)app.use(pinia)app.mount('#app')

4.创建store目录

user模块

import { defineStore } from "pinia";
import { ref } from "vue";
export const uerStore = defineStore('Big-user', () => {const token = ref('')const token222 = ref('')const userinfo=ref({name:'',age:0})const settoken = (newtoken) => {token.value = newtokentoken222.value = newtoken}const removetoken = () => {token.value = ''}const setuserinfo=()=>{userinfo.value={name:'小明',age:20}}return {token, settoken, removetoken, token222,userinfo,setuserinfo}
}, {persist: true
})

index.js模块

import { createPinia } from 'pinia'
import persist from "pinia-plugin-persistedstate";
const pinia = createPinia()
pinia.use(persist)
export default pinia
export * from './modules/user' // 接收user 模块的所有的按需导出

5.在页面中使用pinia仓库

<script setup>
// 导入仓库 根路径即可
import { uerStore } from "@/store";
// 创建仓库实例
const stores = uerStore()
// 登陆
const loginhandle = () => {stores.settoken('eweee')
}
// 退出
const outhandle = () => {stores.removetoken()
}
// 设置用户信息
const setuseinfohandle = () => {stores.setuserinfo()
}</script><template><div><p>{{ stores.token }}</p><button @click="loginhandle">登陆</button><button @click="outhandle">退出</button><button @click="setuseinfohandle">设置用户信息</button></div>
</template>


http://www.mrgr.cn/news/35521.html

相关文章:

  • MySQL查询执行(六):join查询
  • 对node工程进行压力测试与性能分析
  • 高中数学:概率-相关运算性质
  • Android Framework AMS(16)进程管理
  • c语言中孤立位(loner)的使用
  • AI写作(二)NLP:开启自然语言处理的奇妙之旅(2/10)
  • C++_CH19_继承
  • Make breakpoint pending on future shared library load
  • 【初阶数据结构】排序——插入排序
  • 阴影的基本原理
  • Linux驱动开发初识
  • mysql学习教程,从入门到精通,SQL RIGHT JOIN语句(24)
  • Robot Operating System——多边形数据
  • [大语言模型-论文精读] Diffusion Model技术-通过时间和空间组合扩散模型生成复杂的3D人物动作
  • Thread , ThreadLocal , ThreadLocalMap , Entry 之间的关系?
  • 宝塔部署vue项目出现的各种问题
  • 【算法】模拟:(leetcode)6.Z 字形变换(medium)
  • 光子架与电子架 -- 主从子架
  • 小程序面板开发教程|开发照明 Matter 面板步骤(一)
  • WebGL阴影与后期处理
  • Taro多端统一开发解决方案
  • 多线程:死锁
  • 从 Oracle 集群到单节点环境(详细记录一次数据迁移过程)之二:生产服务器的备份操作
  • 前端读取PDF和DOCX文件(干货分享)
  • 【C++】Eclipse技巧汇总
  • ATTCK实战系列-Vulnstack靶场内网域渗透(二)