uniapp中怎样配置pinia

Pinia 是 Vue 的存储库,它允许跨组件/页面共享状态。实际上,pinia就是Vuex的升级版,官网也说过,为了尊重原作者,所以取名pinia,而没有取名Vuex,所以大家可以直接将pinia比作为Vue3的Vuex。

uni-app 使用Pinia

uni-app 内置了 Pinia 。Vue 2 项目暂不支持

使用 HBuilder X 不需要手动安装,直接使用即可。

main.js 中引用pinia

import App from './App'

// #ifndef VUE3
import Vue from 'vue'
import './uni.promisify.adaptor'


Vue.config.productionTip = false
App.mpType = 'app'
const app = new Vue({
  ...App
})
app.$mount()
// #endif

// #ifdef VUE3
import { createSSRApp } from 'vue'
import * as Pinia from 'pinia';       // 配置pinia第一句

export function createApp() {
  const app = createSSRApp(App)
  
  // 状态管理
	const store = Pinia.createPinia();	// 配置pinia第二句
    // 持久化
    app.use(store);						// 配置pinia第三句

  return {
    app,	
    Pinia								// 配置pinia第四句
  }
}
// #endif

特别注意的位置,放其他地方可能导致引入失败

import * as Pinia from 'pinia'; 

至此pinia导入成功。

创建一个store文件夹,和一个userColorStore.js文件,测试一下刚刚配置的pinia

import { defineStore } from "pinia";
import {ref} from 'vue'

export const userColorStore = defineStore("color", (v) => {
	const color = ref('red');
	const setColor = v =>{
		color.value = v;
	}
	
	return {color,setColor}
})

在pages/index/index.vue文件中运行一下刚刚写的代码

import { userColorStore } from '../../store/userColorStore';

	const colorStore = userColorStore()
	
	const setColor = ()=>{
		colorStore.setColor("blue")
	}

<template>
	<button @tap="setColor()">{{colorStore.color}}</button>
</template>

这是pinia简单的一个测试样例。

------------------ 华丽分割线 ------------------
欢迎大家阅读我的创业笔记,如果你觉得这篇写得不错的话,可以关注我的公众号: 成长创业笔记 第一时间查阅我们的文章!感谢大家的支持。
我是一名独立开发者,创业者。欢迎大家跟我交流软件开发、软件运营的一切事情。 包括网站建设、小程序开发、安卓app开发等。
微信号:zstxinghui
欢迎大家使用我们的软件:
  • ● 在线图片编辑器
  • ● 小程序: 家政小程序,陪诊小程序
  • ● 开源的网站内容管理系统: 小木CMS内容管理系统
更欢迎大家下载我们的APP:
  • ● 松鼠天气:简洁的天气预报,日历工具
公众号
程序员小张
我们的主营业务:承接网站建设小程序开发安卓APP开发软著申请等。欢迎咨询!
扫一扫,加我微信
随机文章
如何寻找我们的合作伙伴
2024-06-09 15:14:54
本地生活-家政小程序模板
2024-06-12 14:57:28
学习SEO优化,并且好好执行
2024-07-01 23:24:06
2024年终总结
2024-12-31 23:40:05
成长创业笔记17:2025年稳步前行,家政小程序发布新版本,继续出发
2025-01-10 23:36:15