诚城的成长 诚城的成长
首页
  • 高数基础
  • 数一

    • 高等数学
    • 线性代数
    • 概率论与数理统计
  • 820

    • 数据结构
    • 计算机操作系统
  • 英一

    • 单词
    • 语法
    • 阅读理解
    • 作文
  • 政治

    • 马克思主义基本原理
    • 毛泽东
    • 近代史
    • 思修
    • 时事
  • openpose
  • html5
  • css3
  • UI

    • Tailwind Css
    • Element-Plus
    • UniApp
  • 框架

    • Vue3
  • 拓展包

    • 包管理工具
    • 包开发
  • 开发语言

    • C语言
    • PHP
    • Phyton
  • 框架

    • Laravel
  • 会计

    • 初级经济法基础
    • 初级会计实务
  • 软考

    • 信息系统项目管理师
  • 博客

    • vitepress
    • vuepress
  • manim
  • git
  • vsCode
  • latex
  • docker
  • axios
  • vim
  • mac
  • Jetbrains

    • phpstorm
    • clion
突发奇想
GitHub (opens new window)

诚城

我有N个梦想……
首页
  • 高数基础
  • 数一

    • 高等数学
    • 线性代数
    • 概率论与数理统计
  • 820

    • 数据结构
    • 计算机操作系统
  • 英一

    • 单词
    • 语法
    • 阅读理解
    • 作文
  • 政治

    • 马克思主义基本原理
    • 毛泽东
    • 近代史
    • 思修
    • 时事
  • openpose
  • html5
  • css3
  • UI

    • Tailwind Css
    • Element-Plus
    • UniApp
  • 框架

    • Vue3
  • 拓展包

    • 包管理工具
    • 包开发
  • 开发语言

    • C语言
    • PHP
    • Phyton
  • 框架

    • Laravel
  • 会计

    • 初级经济法基础
    • 初级会计实务
  • 软考

    • 信息系统项目管理师
  • 博客

    • vitepress
    • vuepress
  • manim
  • git
  • vsCode
  • latex
  • docker
  • axios
  • vim
  • mac
  • Jetbrains

    • phpstorm
    • clion
突发奇想
GitHub (opens new window)
  • start
  • pinia

    • pinia
    • state
    • action
    • getter
    • other
    • 持久化存储
      • install
      • setting
        • index.ts
        • Typescript
        • main.ts
      • Use
        • use in vue
  • router
  • setup
  • solt
  • computed
  • component.md

  • map
  • vue3
  • pinia
诚城
2022-04-15
目录

持久化存储原创

# install

官档 (opens new window)

yarn add pinia-plugin-persist

# setting

# index.ts

import { createPinia } from 'pinia'
import piniaPluginPersist from 'pinia-plugin-persist'

const store = createPinia()

store.use(piniaPluginPersist)

export default store

# Typescript

{
  "compilerOptions": {
    "types": [
      "pinia-plugin-persist"
    ]
  },
}

# main.ts

import { createSSRApp } from 'vue'
// import { createPinia } from 'pinia'
import App from './App.vue'
import mixins from '@/utils/mixins'
import store from '@/stores'

import '../tailwind.css'

export function createApp() {
  const app = createSSRApp(App)
  app.use(store)
  app.mixin(mixins)
  // app.use(createPinia()) // 取消全局,放置到 store 中
  return {
    app
  }
}

# Use

定义模块

// ts or js
import { defineStore } from 'pinia'

export const userStore = defineStore('User', { // User 为 Id ,必须是唯一的
  state: () => {
    return {
      age: 18,
      name: 'sdsd'
    }
  },
  getters: {

  },
  actions: {

  },
  // 开启 pinia 持久存储
  persist: {
    enabled: true, // 开启存储
    strategies: [
      {
        // key: 'User', // 指明 key, 不设置时,默认为 User ,即 defineStore Id
        storage: localStorage, // 存储方式 默认为 session
        paths: ['name', 'age'] // 指定 state里面存储的内容,未指定的将不存储
      }
    ]
  }
})

# use in vue

// 在任意组件中使用
<template>
  <view class="content">
    <input class="border border-blue-500" v-model="age" type="text" />
    <input class="border border-green-500" v-model="name" type="text" />
    <view></view>
  </view>
</template>

<script setup lang="ts">
import { storeToRefs } from 'pinia' // 响应式数据
import { bbbStore } from '@/stores/bbb' // 单独引用
const user = bbbStore()
let { age, name } = storeToRefs(user)

</script>
#vuex
上次更新: 2022/08/23, 18:12:45
other
router

← other router→

Theme by Vdoing | Copyright © 2022-2022 carveybunt | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×
×

特别申明:

本站所有内容均为个人理解或转载,如有不当之处,敬请大佬指导!