vue3 中使用pinia 数据状态管理(在Taro 京东移动端框架中的使用)

本文主要是介绍vue3 中使用pinia 数据状态管理(在Taro 京东移动端框架中的使用),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.pinia 介绍

pinia 是 Vue 的存储库,它允许您跨组件/页面共享状态。就是和vuex一样的实现数据共享。
依据Pinia官方文档,Pinia是2019年由vue.js官方成员重新设计的新一代状态管理器,更替Vuex4成为Vuex5。
Pinia 目前也已经是 vue 官方正式的状态库。适用于 vue2 和 vue3。可以简单的理解成 Pinia 就是 Vuex5。也就是说, Vue3 项目,建议使用Pinia。

Pinia 的优点

  1. pinia 符合直觉,易于学习。
  2. pinia 是轻量级状态管理工具,大小只有1KB.
  3. pinia 模块化设计,方便拆分。
  4. pinia 没有 mutations,直接在 actions 中操作 state,通过 this.xxx 访问响应的状态,尽管可 以直接操作 state,但是还是推荐在 actions 中操作,保证状态不被意外的改变。
  5. store 的 action 被调度为常规的函数调用,而不是使用 dispatch 方法或者是 MapAction 辅助函数,这是在 Vuex 中很常见的。
  6. 支持多个 store。
  7. 支持 Vue devtools、SSR、webpack 代码拆分。
2.pinia基本使用

①.安装pinia

    

npm i pinia

 

②. 全局app.ts 引入

import { createApp } from "vue";
import { createPinia } from "pinia";
import Taro from "@tarojs/taro";const App = createApp({mounted() {},onLaunch(option) {},onShow() {},onHide() {},
});
App.use(createPinia());
export default App;

此时我这个是新创建得的一个 createApp.ts文件 在app.ts中引入的

③.创建store文件 

index.ts

import { createPinia } from "pinia";
const store = createPinia();export { store };export * from "./modules/user";
export * from "./modules/tabbar";
export * from "./modules/location";export default store;

modules 文件夹中都是 相关的store 模块

④.使用字段说明

拿user.ts store模块来说

import { defineStore } from "pinia";
import { setStorage, getStorage, clearStorage } from "../../utils/tools";
import { store } from "../index";export const useUserStore = defineStore("user", {state: () => ({Token: getStorage("TOKEN") || null,Userinfo: getStorage("userInfo") || null,fansInfo: getStorage("fansInfo") || {},fansId: getStorage("fansId") || null,buyer_nick: getStorage("buyer_nick") || null,xyToken: getStorage("xyToken") || null,}),getters: {},actions: {setToken(token: string) {this.Token = token;setStorage("TOKEN", token);},setFansId(id: string) {this.fansId = id;setStorage("fansId", id);},setFansInfo(info: object) {this.fansInfo = info;setStorage("fansInfo", info);},setUserinfo(userinfo: Object) {this.Userinfo = userinfo;setStorage("userInfo", userinfo);},loggout() {this.Token = "";this.Userinfo = "";clearStorage("TOKEN");clearStorage("userInfo");},async getUserinfo() {},},
});export function getUserStore() {return useUserStore(store);
}

都是一些state 数据状态 和action 操作函数

⑤.页面中使用

import { storeToRefs } from 'pinia'; //引入插件方法
import { useUserStore } from '../../store/index' //引入模块
const userStore = useUserStore() //模块实例化const { fansId, fansInfo } = storeToRefs(userStore) //state 状态//注意 此时的状态是ref 参数 需要.value状态中的函数使用: 
userStore.setUserinfo(obj)  //使用user.ts中的action 函数

3.总结

我感觉比vuex 好使 自从使用了pinia 以后 没有看过vuex 了 我现在都是写vue3  而且我上面说的这种 并不是只有Taro框架中能使用 这个很多框架的使用方式应该都是一样的  如果我上述的代码有问题 欢迎大家指正

这篇关于vue3 中使用pinia 数据状态管理(在Taro 京东移动端框架中的使用)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/707494

相关文章

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

Windows下C++使用SQLitede的操作过程

《Windows下C++使用SQLitede的操作过程》本文介绍了Windows下C++使用SQLite的安装配置、CppSQLite库封装优势、核心功能(如数据库连接、事务管理)、跨平台支持及性能优... 目录Windows下C++使用SQLite1、安装2、代码示例CppSQLite:C++轻松操作SQ

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

Python常用命令提示符使用方法详解

《Python常用命令提示符使用方法详解》在学习python的过程中,我们需要用到命令提示符(CMD)进行环境的配置,:本文主要介绍Python常用命令提示符使用方法的相关资料,文中通过代码介绍的... 目录一、python环境基础命令【Windows】1、检查Python是否安装2、 查看Python的安

全面解析HTML5中Checkbox标签

《全面解析HTML5中Checkbox标签》Checkbox是HTML5中非常重要的表单元素之一,通过合理使用其属性和样式自定义方法,可以为用户提供丰富多样的交互体验,这篇文章给大家介绍HTML5中C... 在html5中,Checkbox(复选框)是一种常用的表单元素,允许用户在一组选项中选择多个项目。本

HTML5 搜索框Search Box详解

《HTML5搜索框SearchBox详解》HTML5的搜索框是一个强大的工具,能够有效提升用户体验,通过结合自动补全功能和适当的样式,可以创建出既美观又实用的搜索界面,这篇文章给大家介绍HTML5... html5 搜索框(Search Box)详解搜索框是一个用于输入查询内容的控件,通常用于网站或应用程

Python并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.

Python中help()和dir()函数的使用

《Python中help()和dir()函数的使用》我们经常需要查看某个对象(如模块、类、函数等)的属性和方法,Python提供了两个内置函数help()和dir(),它们可以帮助我们快速了解代... 目录1. 引言2. help() 函数2.1 作用2.2 使用方法2.3 示例(1) 查看内置函数的帮助(

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.