Pinia 最新发布的 6 个插件,效率提升 300%!

2025年05月17日09:13:06 科技 1728

Pinia 最新发布的 6 个插件,效率提升 300%! - 天天要闻

Pinia 作为 Vue 官方推荐的状态管理库,其插件机制能有效扩展核心功能,覆盖 数据持久化、性能优化、开发调试、类型安全 等常见需求。

一、数据持久化插件:pinia-plugin-persistedstate

痛点: 页面刷新后状态丢失

npm install pinia-plugin-persistedstate
// main.ts
import { createPinia } from'pinia'
import piniaPluginPersistedstate from'pinia-plugin-persistedstate'

const pinia = createPinia()
pinia.use(piniaPluginPersistedstate)

// store 配置
exportconst useUserStore = defineStore('user', {
  state: () => ({ token: '' }),
  persist: {
    storage: sessionStorage, // 指定存储方式
    paths: ['token'] // 选择持久化字段
  }
})

适用场景:

  • 保持用户登录状态
  • 记住表格筛选条件
  • 保存用户主题偏好

二、状态重置插件:pinia-plugin-reset

痛点: 手动重置复杂状态容易遗漏

import { createReset } from 'pinia-plugin-reset'

// 初始化
pinia.use(createReset())

// 使用示例
const store = useUserStore()
store.$reset() // 一键重置到初始状态

**适用场景:

  • 用户退出登录时清理数据
  • 表单提交后重置
  • 测试用例的初始状态设置

三、防抖操作插件:@pinia/plugin-debounce

顾名思义,防抖触发 pinia 更新,减少更新频率

import { debounce } from 'ts-debounce'
import { PiniaDebounce } from '@pinia/plugin-debounce'

// Pass the plugin to your application's pinia plugin
pinia.use(PiniaDebounce(debounce))
defineStore(
  'id',
() => {
    // ...the store

    return { someSearch }
  },
  {
    debounce: {
      // 防抖
      someSearch: 300,
    },
  }
)

四、映射操作插件:pinia-orm

通过映射关系来操作 pinia

Pinia 最新发布的 6 个插件,效率提升 300%! - 天天要闻

import { createPinia } from 'pinia'
import { createORM } from 'pinia-orm'
const pinia = createPinia().use(createORM())
// User Model

import { Model } from'pinia-orm'

exportdefaultclass User extends Model {
// entity is a required property for all models.
static entity = 'users'

// List of all fields (schema) of the post model. `this.string()` declares
// a string field type with a default value as the first argument.
// `this.uid()` declares a unique id if none provided.
static fields () {
    return {
      id: this.uid(),
      name: this.string(''),
      email: this.string('')
    }
  }
// For typescript support of the field include also the next lines
declare id: string
declare name: string
declare email: string
}

五、撤销/重置插件:pinia-undo

pnpm add pinia pinia-undo
import { PiniaUndo } from 'pinia-undo'

const pinia = createPinia()
pinia.use(PiniaUndo)
const useCounterStore = defineStore({
  id: 'counter',
  state: () => ({
    count: 10,
  }),
  actions: {
    increment() {
      this.count++
    },
  },
})

const counterStore = useCounterStore()

// undo/redo have no effect if we're at the
// beginning/end of the stack
counterStore.undo() // { count: 10 }
counterStore.redo() // { count: 10 }

counterStore.increment() // { count: 11 }
counterStore.increment() // { count: 12 }

counterStore.undo() // { count: 11 }
counterStore.undo() // { count: 10 }
counterStore.undo() // { count: 10 }

counterStore.redo() // { count: 11 }

六、SSR 支持:@pinia/nuxt

npm install @pinia/nuxt
// nuxt.config.ts
export default defineNuxtConfig({
  modules: ['@pinia/nuxt']
})

// 自动处理:  
// - 服务端数据预取  
// - 客户端状态同步  
// - 避免 hydration 错误

七、开发调试插件:vue-devtools 增强

内置支持: 通过浏览器插件直接查看

调试技巧:

  • 时间旅行调试(状态回滚)
  • 直接修改 store 状态
  • 跟踪状态变更来源

科技分类资讯推荐

YU7销量为何没受前段时间小米负面的影响? - 天天要闻

YU7销量为何没受前段时间小米负面的影响?

为什么前段时间小米负面不断,但是现在SU7发布之后,一样是卖爆了呢?其实我之前就说过了,这些负面不会影响到小米的销量。互联网是健忘的。之前那个小米手机发生高速车祸,很多人在说小米的自驾问题。但是实际上大家要明白,真正会去买小米这个汽车的人,他们的侧重点是什么?
华为发布新一代OceanStor Dorado 3000融合全闪存存储:最高1600块SSD、8PiB容量 - 天天要闻

华为发布新一代OceanStor Dorado 3000融合全闪存存储:最高1600块SSD、8PiB容量

快科技6月30日消息,华为今日正式发布新一代OceanStor Dorado 3000融合全闪存存储。最大支持2 TB内存、1600块SSD,提供高达8 PiB(‌1PiB=1024TB)可用容量,单系统最大可扩展到16个控制器。具有以下三大优势:全新融合:华为新一代OceanStor Dorado 3000采用原生块、文件、对象并行架构,一套存储满足多种业
千元机太有“料”,5500mAh+OIS防抖+1.5K大屏,太香了! - 天天要闻

千元机太有“料”,5500mAh+OIS防抖+1.5K大屏,太香了!

随着技术的飞速发展,即使是千元价位的手机也能提供令人惊艳的性能表现,彻底颠覆了人们对"低价低配"的刻板印象。Redmi Note14 Pro正是这样一款打破常规的产品,它以亲民的价格带来了旗舰级的体验,成为2025年手机市场中当之无愧的"性
5年不换机,iPhone16持续跌价,亲民捡漏选择! - 天天要闻

5年不换机,iPhone16持续跌价,亲民捡漏选择!

你是否还记得上一次换手机是什么时候?随着科技的飞速发展,智能手机的迭代速度越来越快,但大多数人的换机周期却在逐渐延长。过去,许多人可能一年一换,甚至半年一换,追求最新款、最强性能;而如今,越来越多的人开始理性消费,选择2年左右更换一次手机。
“魅族科技”回归,魅族22进入倒计时! - 天天要闻

“魅族科技”回归,魅族22进入倒计时!

近日,有网友发现,魅族的公众号和官微都已从原来的“星纪魅族科技”更名为“魅族科技”。据相关平台记录,这一变动在2025年6月29日完成,而在不到一年前的2024年8月19日,这两个平台的命名才刚从“魅族科技”更名为“星纪魅族科技”。那么,这