pinia的使用和持久化存储

编程入门 行业动态 更新时间:2024-10-11 05:21:21

pinia的使用和<a href=https://www.elefans.com/category/jswz/34/1771330.html style=持久化存储"/>

pinia的使用和持久化存储

一、pinia是什么:

        1、Pinia 是 Vue.js 的轻量级状态管理库,是vuex的升级版,常见于vue3中使用。

二、pinia基本使用:

        1、装包:npm i pinia

        2、在main.js中use

三、pinia持久化插件:   pinia-plugin-persistedstate

        1、装包:npm i pinia-plugin-persistedstate。

        2、在main.js中和pinia配合使用

import { createPinia } from "pinia";
// pinia开启持久化存储
import piniaPluginPersist from "pinia-plugin-persist";
// 统一注册组件
const app = createApp(App);
const store = createPinia();
store.use(piniaPluginPersist);
// 先使用再挂载
app.use(store).mount("#app");

四、使用:

  路径:store/userStore.js

import { defineStore } from "pinia";
import { ref, computed } from "vue";
import router from "@/router";
//computed相当于是计算属性
import { ElMessage } from "element-plus";
import "element-plus/theme-chalk/el-message.css";
import { loginApi } from "@/apis/user";
export const useUserStore = defineStore("user",() => {let userInfo = ref({});const getUserInfo = async (data) => {let res = await loginApi(data);userInfo.value = res.data.result;// console.log(res.data.result);if (res.data.msg == "操作成功") {ElMessage({message: "登录成功",type: "success",});setTimeout(() => {router.push("/home");}, 400);}};return {userInfo,getUserInfo,};},{persist: {enabled: true,strategies: [{ storage: localStorage, paths: ["userInfo"] }],},}
);

上面是登录的时候调接口并持久化存储用户信息

持久化的代码是:   {
    persist: {

      //enabled:是是否开启持久化存储
      enabled: true,

      //strategies:是设置默认持久化存储的位置,默认在 sessionStorage 中存储,paths:为持久化存储的属性

      strategies: [{ storage: localStorage, paths: ["userInfo"] }],
    },
  }

五、在vue组件中使用:

        在js中引入

import { useUserStore } from "@/store/userStore";
let useUser = useUserStore();
console.log(useUser);

       在template中使用

<template><nav class="app-topnav"><div class="container"><ul><template v-if="useUser.userInfo?.token"><li><a href="javascript:;"><i class="iconfont icon-user"></i>{{ useUser.userInfo.nickname }}</a></li><li><el-popconfirmtitle="确认退出吗?"confirm-button-text="确认"cancel-button-text="取消"@confirm="confirmEvent"><template #reference><a href="javascript:;">退出登录</a></template></el-popconfirm></li><li><a href="javascript:;">我的订单</a></li><li><a href="javascript:;">会员中心</a></li></template><template v-else><li><a href="/login">请先登录</a></li><li><a href="javascript:;">帮助中心</a></li><li><a href="javascript:;">关于我们</a></li></template></ul></div></nav>
</template>

这样就达到了pinia数据持久化的目的,再也不用担心刷新页面,数据就丢失的问题啦

更多推荐

pinia的使用和持久化存储

本文发布于:2023-11-16 12:36:11,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1622584.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:持久   pinia

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!