首页 > 其他分享 >Pinia

Pinia

时间:2024-07-08 20:26:00浏览次数:14  
标签:状态 插件 Vue const Pinia pinia

Pinia 简介

Pinia 起始于 2019 年 11 月左右的一次实验,其目的是设计一个拥有组合式 API 的 Vue 状态管理库

为什么要使用Pinia?

Pinia是Vue的专属状态管理库,它允许你跨组件或页面共享状态。如果你熟悉组合式API的话,可能会认为可以通过一行简单的 export const state = reactive({})来共享一个全局状态。对于单页应用来说确实可以,但如果应用在服务器端渲染,这可能会使你的应用暴露出一些安全漏洞。 而如果使用 Pinia,即使在小型单页应用中,你也可以获得如下功能:

  • 测试工具类
  • 插件:可通过插件扩展[inia功能
  • 为JS开发者提供适当的TypeScript支持以及自动补全功能
  • 支持服务端渲染
  • Devtools支持
    - 追踪 actions、mutations 的时间线
    - 在组件中展示它们所用到的Store
    - 让调试更容易的Time travel
  • 热更新
    - 不必重载页面即可修改Store
    - 开发时可保持当前的Store
  • 插件:可通过插件扩展Pinia的功能

1.Pinia安装

npm install pinia   
npm install pinia-plugin-persistedstate

Pinia是一个基于Vue 3的状态管理库,它使得管理Vue的全局状态变得更加容易和直观。
而pinia-plugin-persistedstate是 Pinia 的官方插件之一,它提供了一种将 Pinia 状态持久化到本地存储的方式,以确保状态数据在刷新或关闭页面后仍然存在。
换句话说,Pinia是用于管理Vue 3应用程序的状态管理库,而pinia-plugin-persistedstate是为Pinia提供的一个插件,它允许您将Vue应用程序中的状态保存到本地存储中,以便在下一次访问应用程序时恢复状态。

2.新建store/Pinia.ts

//引入pina
import { createPinia,defineStore } from 'pinia'
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'

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

export default pinia
 const wmsStore = defineStore('wmsStore', {
  state: () => {
    return {
      name: '游客',
      isMenuCollapse:false
    }
  },
  persist: {
    key: 'wms-store',
    storage: localStorage,
  },
})
export  {wmsStore}

3.在main.ts文件中引入pinia组件

//引入pina
import pinia from '@/store/pinia'

const app = createApp(App)

app.use(pinia)

4. 使用变量

 import  { wmsStore } from '@/store/pinia'
 const wmsstore = wmsStore()

onMounted(()=>{
  console.log(wmsstore.name);

  wmsstore.name = "张三"
 
  console.log(wmsstore.name);

 })
		 - 

标签:状态,插件,Vue,const,Pinia,pinia
From: https://blog.csdn.net/qq_53098873/article/details/140277862

相关文章

  • Pinia 实用教程【Vue3 状态管理】状态持久化 pinia-plugin-persistedstate,异步Action,s
    什么是状态管理?全局状态Store(如Pinia)是一个保存状态和业务逻辑的实体,与组件树没有绑定,有点像一个永远存在的组件,每个组件都可以读取和写入它。三大核心概念state属性——相当于组件中的datagetter计算属性——相当于组件中的computedaction操作属性的......
  • 前端-vue工程化-Pinia的使用
    先来看一下我们的文件夹吧:大多数vue3前端项目中都会有这样一个文件夹是用来存放全局变量的地方,用来做状态管理。我们项目中使用的状态管理工具其实就是Pinia,当然不是我推荐大家用的,这个有迹可循,因为Pinia是在Vue官网上被推荐的一种方式。下面截几张官网上的图片:然后给......
  • uni-app编译错误:“hasInjectionContext“ is not exported by “node_modules/.pnpm/p
    1.问题背景当我们接手一个新的uni-app项目(最头疼了x_x),可能会想到删掉node_modules和pnpm-lock.yaml后,执行npminstall或npminstall重新安装依赖包,然后执行pnpmdev:mp-weixin编译,但可能会遇到如下错误:"hasInjectionContext"isnotexportedby"node_modul......
  • Vite-Wechat网页聊天室|vite5.x+vue3+pinia+element-plus仿微信客户端
    基于Vue3+Pinia+ElementPlus仿微信网页聊天模板Vite5-Vue3-Wechat。vite-wechat使用最新前端技术vite5+vue3+vue-router@4+pinia+element-plus搭建网页端仿微信界面聊天系统。包含了聊天、通讯录、朋友圈、短视频、我的等功能模块。支持收缩侧边栏、背景壁纸换肤、锁屏、最大化等......
  • vue3中如何使用pinia -- pinia使用教程(一)
    vue3中如何使用pinia--pinia使用教程(一)安装使用创建store使用store访问修改store使用组合式api创建store--setupstorepinia和hook的完美结合如何解决上面的问题使用hook管理全局状态和pinia有何优缺点?参考小结pinia是一个Vue3的状态管理库,它......
  • vue3 详细配置 pinia,以及持久化处理
    安装piniapnpminstallpiniapnpminstallpinia-plugin-persistedstate使用pinia根目录下创建store文件夹,新家moudules文件夹和index.ts文件,如图:index.ts文件//store/index.ts//仓库大仓库import{createPinia}from"pinia";importpiniaPluginPersisteds......
  • Vue3 状态管理 - Pinia,超详细讲解!
    前言:哈喽,大家好,我是前端菜鸟的自我修养!今天给大家分享【Vue3状态管理-Pinia】,超详细讲解!并提供具体代码帮助大家深入理解,彻底掌握!原创不易,如果能帮助到带大家,欢迎收藏+关注哦......
  • [vue3]掌握pinia
    piniaPinna是vue的最新状态管理工具,用来替代vuex官网:Pinia|TheintuitivestoreforVue.js优势更简洁的API,去掉了mutaion与Vue3配套的组合式API风格去掉了modules,每个store都是独立的模块更好的TS支持,提供可靠的类型推断安装命令:npmipiniamain.js挂载......
  • Vue3-Pinia状态管理器
    Pinia是Vue的专属状态管理库,它允许你跨组件或页面共享状态。如果你熟悉组合式API的话,你可能会认为可以通过一行简单的 exportconststate=reactive({}) 来共享一个全局状态。对于单页应用来说确实可以,但如果应用在服务器端渲染,这可能会使你的应用暴露出一些安全漏洞......
  • pinia之Vue 的存储库,案例:允许跨组件/页面共享状态--传值
    pinia之Vue的存储库,案例:允许跨组件/页面共享状态--传值第⼀步:npminstallpinia第⼆步:操作src/main.tsimport{createApp}from'vue'importAppfrom'./App.vue'/*引⼊createPinia,⽤于创建pinia*/import{createPinia}from'pinia'/*创建pinia*/con......