Vue3 纯JS单文件使用Pinia 数据共享 方法封装

介绍

一般情况下是在Vue文件里面使用Pinia,但有时候会在单js文件去封装一下全局的方法。

Pinia

文件结构:src/store/modules/user.js

javascript 复制代码
import { ref } from 'vue'
import { defineStore } from 'pinia'
import { selectUserMessage } from '@/api/user/user'
import { setSessionToken, getSessionToken } from '@/uilts/user'
export default defineStore("user", () => {

    const token = ref(getSessionToken())
    const userMsg = ref({})
    setUser()
    
    
    function setUser() { //获取用户信息
        if (token.value == null) { return }
        selectUserMessage().then(r => {
            userMsg.value = r.data
        })
    }
    
    function updateUserMessage() //更新用户信息
    {
        selectUserMessage().then(r => {
            userMsg.value = r.data
        })
    }
    
    return {
        token,   
        userMsg,
        updateUserMessage
    }
})

封装JS

把updateUserMessage封装成单条调用

javascript 复制代码
import userUser from '@/store/modules/user'
export function updateUserMessage() {
    const userStore = userUser()
    //这句一定要在里面
    userStore.updateUserMessage()
}//更新用户信息
相关推荐
修炼的dance2 分钟前
压完的PDF验签不报错,是因为签名被删了
前端
ModStart5 分钟前
ProcHub v0.7.0 命令行工具上线,进程、配置与 WSL 都能在终端管理
前端
那年那棵树8 分钟前
基于WebGis的人生如旅地图系统
前端·arcgis·vue·课程设计
WeiXin_DZbishe11 分钟前
基于springboot装修风格选择系统的设计与开发-计算机毕设【课程设计】77964
java·vue.js·spring boot·后端·python·php·课程设计
XZ-07000116 分钟前
week9-三元表达式
java·前端·python
叫我铁汁儿吧24 分钟前
Redux的原理
前端
云和数据.ChenGuang26 分钟前
name=“张三“ age=18 weight=100.3 print (name,age,weight)
java·服务器·前端
代码猎人26 分钟前
前端怎么优化兼容性
前端
Nayana28 分钟前
《Web 到 HarmonyOS》-- 进程、线程与通信:谁能通、怎么通
前端
叫我铁汁儿吧29 分钟前
JS 中的this
前端