react 使用 valtio

安装

c 复制代码
npm i valtio

//好用的storage
npm i good-storage

使用

src目录下创建store文件夹,新增两个文件
index.js

js 复制代码
export * from './user'

user.js

js 复制代码
import { proxy,subscribe } from 'valtio'
import {useProxy} from 'valtio/utils'
import ss from 'good-storage'
const key = "USER_STORE"
const state = proxy(ss.get(key) || {
    token:'',
    info:{}
})

//持久化
subscribe(state, () =>{
    ss.set(key,state)
})

export function useUserStore(){
    return useProxy(state)
}

export const userActions = {
    setToken:async _token=>{
        state.token = _token
        await userActions.updateUserInfo()
        return state.info
    },
    setInfo:_info=>state.info = _info,
}
相关推荐
XXX-X-XXJ2 分钟前
Vue Router完全指南 —— 从基础配置到权限控制
前端·javascript·vue.js
云和数据.ChenGuang4 分钟前
vue钩子函数调用问题
前端·javascript·vue.js
鹏多多19 分钟前
React动画方案对比:CSS动画和Framer Motion和React Spring
前端·javascript·react.js
亿元程序员23 分钟前
8年游戏主程,一篇文章,多少收益?
前端
IT_陈寒38 分钟前
5个Java 21新特性实战技巧,让你的代码性能飙升200%!
前端·人工智能·后端
咖啡の猫40 分钟前
Vue内置指令与自定义指令
前端·javascript·vue.js
昔人'1 小时前
使用css `focus-visible` 改善用户体验
前端·css·ux
前端双越老师1 小时前
译: 构建高效 AI Agent 智能体
前端·node.js·agent
艾小码1 小时前
告别数据混乱!掌握JSON与内置对象,让你的JS代码更专业
前端·javascript