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()
}//更新用户信息
相关推荐
chao_7895 分钟前
链表题解——反转链表【LeetCode】
开发语言·python·算法
站在风口的猪11088 分钟前
React前端框架
前端·react.js·前端框架·js
AI迅剑15 分钟前
模块二:C++核心能力进阶(5篇)篇二:《多线程编程:C++线程池与原子操作实战》(14万字深度指南)
java·开发语言·c++
华洛16 分钟前
别傻了,推理模型根本不会推理,R1也不会!
前端·javascript·vue.js
袁煦丞19 分钟前
MAZANOKE照片瘦身超级管家:cpolar内网穿透实验室第544个成功挑战
前端·程序员·远程工作
代码的余温20 分钟前
Java原子类:CAS与volatile的无锁奥秘
java·开发语言·线程安全
oioihoii24 分钟前
C++中锁与原子操作的区别及取舍策略
java·开发语言·c++
掘金安东尼26 分钟前
🧭 前端周刊第416期(2025年5月26日–6月1日)
前端·javascript·面试
Mikhail_G27 分钟前
Python应用continue关键字初解
大数据·运维·开发语言·python·数据分析
90后的晨仔1 小时前
iOS 中的Combine 框架简介
前端