首页 > 其他分享 >vue3 详细配置 pinia,以及持久化处理

vue3 详细配置 pinia,以及持久化处理

时间:2024-06-21 10:44:23浏览次数:18  
标签:持久 key app ts pinia vue3 import const

安装pinia

pnpm install pinia
pnpm install pinia-plugin-persistedstate

使用pinia

  • 根目录下创建store文件夹,新家moudules文件夹和index.ts文件,如图:

  • index.ts 文件

// store/index.ts
// 仓库大仓库
import { createPinia } from "pinia";
import piniaPluginPersistedstate from "pinia-plugin-persistedstate";

// 引入模块仓库
import { useUserInfoStore } from './moudules/userInfo'

// 创建大仓库
const pinia = createPinia();
pinia.use(piniaPluginPersistedstate);

export {
  pinia,
  useUserInfoStore
}

  • userInfo.ts 文件
import { defineStore } from 'pinia';
 

export const useUserInfoStore = defineStore(
  'useUserInfoStore',
  () => {
    const someState = ref('你好 pinia')
    return { 
      someState,
    }
  },
  {
    // 配置持久化
    persist: {
      // 调整为兼容多端的API
      storage: {
        setItem(key, value) {
          uni.setStorageSync(key, value) 
        },
        getItem(key) {
          return uni.getStorageSync(key) 
        },
      },
    },
  },
);
  • main.ts 文件
// #ifdef VUE3
import { createSSRApp } from 'vue'
import App from "./App.vue";
import uviewPlus, { setConfig } from 'uview-plus';
// import { createPinia } from 'pinia'
import { pinia } from './store';


export function createApp() {
  const app = createSSRApp(App)

  app.use(uviewPlus)
  app.use(pinia);
  // app.use(useStore); // 使用 store

  setConfig({
    // 修改$u.config对象的属性
    config: {
      // 修改默认单位为rpx,相当于执行 uni.$u.config.unit = 'rpx'
      unit: 'rpx'
    },
    // 修改$u.props对象的属性
    props: {
      // 修改radio组件的size参数的默认值,相当于执行 uni.$u.props.radio.size = 30
      radio: {
        size: 16
      }
      // 其他组件属性配置
    }
  })

  return {
    app,
    pinia
  }
}
// #endif

标签:持久,key,app,ts,pinia,vue3,import,const
From: https://www.cnblogs.com/DL-CODER/p/18260077

相关文章

  • 解决Vue3项目运行控制台警告
    运行Vue3项目,控制台警告:Featureflag VUE_PROD_HYDRATION_MISMATCH_DETAILS isnotexplicitlydefined.Youarerunningtheesm-bundlerbuildofVue,whichexpectsthesecompile-timefeatureflagstobegloballyinjectedviathebundlerconfiginordertogetbet......
  • Vue30_指令3
    一、什么是指令?指令(Directives)是带有 v- 前缀的特殊属性。例如在入门案例中的v-model,代表双向绑定。 二、插值表达式1、花括号格式:{{表达式}}说明:该表达式支持JS语法,可以调用js内置函数(必须有返回值)表达式必须有返回结果。例如1+1,没有结果的表......
  • Vue30_实例2
    目标:了解Vue实例生命周期,生命周期的钩子函数及created函数常用场景分析:在创建vue实例的时候可以制定模板id、数据和方法;而如果要在实例化、模板渲染的过程中需要执行一些其它操作的话,那么可以使用钩子函数。一、创建Vue实例每个Vue应用都是通过用Vue函数创建一个新的Vue......
  • Redis的持久化机制和缓存预热
    Redis的持久化机制Redis是一个内存数据库,它的数据存放在内存中,但是如果关闭服务、机器关机或者断电的话,内存中的所有数据都会慢慢消失消失。内存数据消失的原因:因为内存中的数据是半导体晶体管开关,这种开关高度依赖电源,当电源断电后,无法再控制晶体管的开关状态。这时候电容发挥......
  • uniapp vue3 虚拟下拉滚动
    下面是vue3的写法  如果想查看vue2的写法  请移步至github链接   https://github.com/Arvin-Cui/vue-virtual-scroll/blob/master/pages/index/index.vue1.index.vue  index.vue页面中加一个共用组件VirtualList.vue<template> <view>  <VirtualList:lis......
  • Vue3 状态管理 - Pinia,超详细讲解!
    前言:哈喽,大家好,我是前端菜鸟的自我修养!今天给大家分享【Vue3状态管理-Pinia】,超详细讲解!并提供具体代码帮助大家深入理解,彻底掌握!原创不易,如果能帮助到带大家,欢迎收藏+关注哦......
  • 12.1.k8s中的pod数据持久化-pv与pvc资源及动态存储StorageClass
    目录一、pc与pvc的概念二、pvc与pv初体验1,准别nfs环境1.1.所有节点安装nfs工具1.2.harbor节点编辑nfs配置文件 2,创建3个pv资源3,harbor节点创建pv对应的nfs存储路径 4,创建pvc关联pv5,创建pod引入pvc6,编辑index访问文件到harbor存储目录下7,浏览器访问测试三、Storag......
  • vue3的computed计算属性返回值注解
    //语法结构:computed<返回值的类型>()列子//定义数据constcuont=ref(0)typeItem={id:stringname:stringprice:number}constlist=ref<Item[]>([{id:'1001',name:'男鞋',price:888},{id:'1002',name:'女鞋......
  • vue3的defineProps接收类型注解
    //这是没有用ts语法接收的props参数defineProps({color:String,size:{type:String,required:false,default:'middle'},})//TS语法//格式:withDefaults(defineProps<类型>(),{默认值名:默认值})第一种写法:withDefa......
  • vue3标签模板上的ref类型注解
    子组件<scriptsetuplang="ts">import{ref,defineExpose}from'vue';constnum=ref<number>(10)defineExpose({num,//把值暴露出去,父级可以通过ref获取})</script><template><h1>我是组件</h1></template&g......