前言

Pinia 是 Vue 的存储库,它允许您跨组件/页面共享状态。

Pinia API 与 Vuex ≤4 有很大不同,即:

  • mutations 不再存在。他们经常被认为是 非常 冗长。他们最初带来了 devtools 集成,但这不再是问题。
  • 无需创建自定义复杂包装器来支持 TypeScript,所有内容都是类型化的,并且 API 的设计方式尽可能利用 TS 类型推断。
  • 不再需要注入、导入函数、调用函数、享受自动完成功能!
  • 无需动态添加 Store,默认情况下它们都是动态的,您甚至都不会注意到。请注意,您仍然可以随时手动使用 Store 进行注册,但因为它是自动的,您无需担心。
  • 不再有 modules 的嵌套结构。您仍然可以通过在另一个 Store 中导入和 使用 来隐式嵌套 Store,但 Pinia 通过设计提供平面结构,同时仍然支持 Store 之间的交叉组合方式。 您甚至可以拥有 Store 的循环依赖关系
  • 没有 命名空间模块。鉴于 Store 的扁平架构,“命名空间” Store 是其定义方式所固有的,您可以说所有 Store 都是命名空间的。

1、安装 Pinia

pnpm install pinia

提示

如果您的应用使用 Vue 2,您还需要安装组合 API:@vue/composition-api

2、main.ts 中创建一个 pinia 并挂载

import { createApp } from "vue";
import App from "./App.vue";
import { createPinia } from "pinia";...const app = createApp(App);app.use(createPinia());app.mount("#app");

3、在 store 文件夹创建 home.ts

import { defineStore } from "pinia";export const useHomeStore = defineStore("home", {state: () => {return {msg: "I`m Pinia!!!",};},getters: {},actions: {handleChangeMessage() {this.msg == "I`m Pinia!!!"? (this.msg = "yeah!!!"): (this.msg = "I`m Pinia!!!");},},
});

4、页面中使用以及获取 Pinia 中的值

<template><el-main><img src="../assets/img/logo.png" alt="logo" width="700" /><div>首页</div><div>{{ home.msg }}</div><el-button type="primary" @click="changeMessage">更改打招呼的方式</el-button></el-main>
</template><script setup lang="ts">
import { useHomeStore } from "../store/home";const home = useHomeStore();const changeMessage = () => {home.handleChangeMessage();
};
</script><style lang="less" scoped>
.el-main {text-align: center;font-size: 80px;margin-top: 10px;img {width: 700px;height: auto;}
}
</style>

至此,Pinia 的基本使用方法如上所述。

效果预览

往期文章回顾

公司后台管理系统搭建(Vue3+Vite+Element Plus+TypeScript+Pinia)

二、公司后台管理系统:项目结构整理

三、后台管理系统页面布局基本结构

四、Pinia 的安装及其基本使用相关推荐

  1. 四、编译安装php-5.5.34

    四.编译安装php-5.5.34 http://cn2.php.net/distributions/php-5.5.34.tar.gz 1.解决依赖关系 先配置阿里云yum源: # 1.备份 # mv ...

  2. 鸟哥的Linux私房菜(基础篇)-第四章、安装 CentOS 5.x 与多重开机小技巧

    第四章.安装 CentOS 5.x 与多重开机小技巧 最近更新日期:2009/08/11 Linux distributions越作越成熟,所以在安装方面也越来越简单!虽然安装非常的简单,但是刚刚前一 ...

  3. 鸟哥的Linux私房菜(基础篇)-第四章、安装 CentOS 5.x 与多重开机小技巧(三.1. 本练习机的规划--尤其是分割参数)

    第四章.安装 CentOS 5.x 与多重开机小技巧 最近更新日期:2009/08/11 1. 本练习机的规划--尤其是分割参数 本练习机的规划--尤其是分割参数 读完第三章.主机规划与磁碟分割之后, ...

  4. 【Jenkins】的四种插件安装方式

    一.安装后初次启动时直接进行安装 二.在线安装 使用该方法安装插件时会自动安装该插件所依赖的其他插件,无需考虑插件之间的依赖性. 1.找到插件管理 Manager Jenkins -> Mana ...

  5. Android开发学习总结(四)——Eclipse在线安装ADT插件

    Android开发学习总结(四)--Eclipse在线安装ADT插件 要想使用Eclipse开发Android应用,首先要安装一个ADT插件,在此记录一下在Eclipse中采用在线安装的方式ADT插件 ...

  6. Android 6.0 PM机制系列(四) APK安装需要空间分析

    前言 在Android 9.0 PM机制系列(四) APK安装需要空间分析文章中,我们重点分析了Android9.0需要的最小APK安装存储空间大小.结论就是:只要系统空间小于Math.min(get ...

  7. linux下使用geant4指南,四步轻松安装Geant4 (Linux篇) | 入门

    最近开始为订阅号"Geant4不完全学习指南"写一些文章. 正文开始. 四步轻松安装Geant4 (Linux篇) | 入门 软件版本:Ubuntu16.04,Geant4.10. ...

  8. slam十四讲-ubuntu20安装opencv3.4.16

    slam十四讲-ubuntu20按照opencv3.4.16 slam十四讲-ubuntu20安装opencv3.4.16 opencv 下载 依赖库的安装 编译安装 遇到的问题 slam十四讲-ub ...

  9. linux安装eclipse提示错误,四种Eclipse安装错误的解决办法

    Eclipse是java零基础的初学者会首先接触到的java开发环境,我们也学习了Eclipse安装教程,相信大家也按照教程在自己的电脑上操作了一遍.但是肯定有人在安装Eclipse的时候,有不同的E ...

  10. linux运行geant4例子,四步轻松安装Geant4 (Linux篇) | 入门

    最近开始为订阅号"Geant4不完全学习指南"写一些文章. 正文开始. 四步轻松安装Geant4 (Linux篇) | 入门 软件版本:Ubuntu16.04,Geant4.10. ...

最新文章

  1. 如何避免在Excel VBA中使用选择
  2. 【Foundation Frame】NSDictionary/NSMutableDictionary
  3. 【MATLAB】三维图形绘制 ( 绘制网格 + 等高线 | meshc 函数 | 绘制平面 + 等高线 | surfc 函数 )
  4. Hadoop的安装与配置及示例程序wordcount的运行
  5. 揭秘传智播客毕业班的超级薪水7k内幕系列II----Offer工资表5.7k,为什么不能让老师就业就业...
  6. 第一批 90 后还有半个月就 30 岁了!那些 30 岁前就成博导的人都怎样了...
  7. Java 文件操作一(写文件、按行读文件、删除文件、复制文件、追加数据、创建临时文件、修改最后修改日期、获取文件大小)
  8. PHP 中使用工厂模式
  9. iphone addressbook操作
  10. sql server 快照_在SQL Server合并复制中应用快照时出现外键问题
  11. 自适应布局 的 解决方案
  12. Protobuf实现Android Socket通讯开发教程
  13. vscode php 不进断点,php – Docker和XDebug没有读取断点VSCode
  14. springboot整合shiro之实现记住我
  15. 如何理解界面陷阱电荷呢(interface trapped charge)和费米钉扎效应?
  16. java 将数据生成word文档,并实现打勾选择框
  17. 计算机英语情景对话二人组,英语情景对话要求两人的对话 时间5分钟左右 内容是在校园两个好朋友谈论...
  18. 水星路由app服务器无响应,手机登录不了水星路由器的管理界面解决方法
  19. tableView 取消 cell 默认下划线样式 - iOS
  20. 纠正你读错的电脑英文词汇--(2)

热门文章

  1. hdu 4466 Triangle (数学)
  2. Python 绘制e^x,e^-x,e^x/x,e^-x/x,e-2x/x,e^-3x/x,ln(x)图像
  3. Jmeter和jdk的下载和安装
  4. 王者荣耀那么火 但你知道创始人背后的故事吗
  5. 单点登录原理分析及CAS实战
  6. android手机铃声文件夹里,Android手机储存卡上的文件夹铃声不显示是怎么回事
  7. TP-LINK无线Wifi上网短信配置说明
  8. 算法分析之工作分配问题
  9. Java手写单例模式
  10. [SQL]yyyymmdd类型与yyyy-mm-dd日期类型的相互转换