【Nuxt】在 Nuxt3 中使用 pinia 并做持久化处理

官方文档

一、安装

pnpm add @pinia/nuxt

二、基础使用

1、配置

添加到 nuxt.config.js 中的 modules

// Nuxt 3
export default defineNuxtConfig({
    modules: ['@pinia/nuxt'],
})

2、使用

composables 文件夹下创建一个 store.ts 文件,这样使用的时候就不需要再导入了。
在这里插入图片描述

interface State {
  activeProductName: string
}
export const useNuxtStore = defineStore('nuxtStore', {
  state: (): State => ({
    activeProductName: '',
  }),
  actions: {
    setActiveProductName(name: string) {
      this.activeProductName = name
    },
  },
})

const store = useNuxtStore()

三、持久化配置

1、安装插件

pnpm add pinia-plugin-persistedstate

2、添加 plugins

在 plugins 文件夹中添加插件 plugins/pinia.ts

import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'
export default defineNuxtPlugin((nuxtApp: any) => {
  nuxtApp.$pinia.use(piniaPluginPersistedstate)
})

3、修改 store

interface State {
  activeProductName: string
}
export const useNuxtStore = defineStore('nuxtStore', {
  state: (): State => ({
    activeProductName: '',
  }),
  actions: {
    setActiveProductName(name: string) {
      this.activeProductName = name
    },
  },
  // 注意:persist定义要做判断,因为localStorage/sessionStorage是客户端参数,所以需要加process.client
  persist: process.client && {
    storage: sessionStorage,
  },
})

四、更多功能请参考

nuxt3+pinia环境下实现数据持久化
nuxt3官网搭建,适配pc和移动端支持一键切换中英文,使用pinia和持久化插件

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值