vue3集成pinia(支持UniApp)

4 篇文章 0 订阅
2 篇文章 0 订阅

一. 介绍

        vue3下的全局状态处理,官方推荐pinia,具体介绍见官网

        简介 | Pinia

二. 安装pinia

npm install pinia

三. 集成

1. 新建store文件夹,vue3项目在src目录下,uniapp在项目根目录下

2. store目录下新建index.js,具体内容如下

import {
	createPinia
} from 'pinia'

const store = createPinia()

export default store

3. main.js引入pinia

vue3项目引入

import { createApp } from 'vue'
import App from './App.vue'
import store from './store'

import './assets/main.css'

const app = createApp(App)
app.use(store)
app.mount('#app')

uniapp引入

import App from './App'

// #ifdef VUE3
import {
	createSSRApp
} from 'vue'
import store from './store'
export function createApp() {
	const app = createSSRApp(App)
	app.use(store)
	return {
		app
	}
}
// #endif

四. 使用pinia

1. 举例使用,登陆模块

store目录下,新建login.js,建议方法命名方式为usexxxStore,下面定义了方法和变量,导出之后即可在其他页面使用

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

export const useLoginStore = defineStore('loginStore', () => {
	const token = ref('')
	const isLogin = ref(false)

	token.value = ''
	isLogin.value = !!token.value

	const login = (tokenVal) => {
		token.value = tokenVal
		isLogin.value = !!tokenVal
	}

	const logout = () => {
		token.value = ''
	}

	return {
		token,
		isLogin,
		login,
		logout,
	}
})

2. 其他页面使用

// 1. 在使用页面引入要使用的store
import { useLoginStore } from '@/store/login.js'

// 2. 在setup中调用方法
const store = useLoginStore()

// 3. 在具体业务逻辑中直接调用

// 例如, 调用字段
const isLogin = store.isLogin

// 或
if (store.isLogin) {
    
}
// 调用方法
store.login('token')

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值