首页 > 其他分享 >vue3的vuex简单配置

vue3的vuex简单配置

时间:2022-09-26 11:15:52浏览次数:45  
标签:配置 tokenInfo state Cookie userInfo vue3 import vuex store

vuex目录

文件内容

【store/index.js】

import { createStore } from "vuex";
import modules from "./modules";

const setupStore = (app) => {
    let storeOptions = {
        modules,
    };
    app.use(createStore(storeOptions));
};

export { setupStore };

【main.js】

import { createApp } from "vue";
import App from "./App.vue";
import { setupStore } from "./store";

const app = createApp(App); //创建vue实例

async function setupApp() {
    /* vuex */
    setupStore(app);

    app.mount("#app");
}

setupApp();

【store/account/account.js】

import Cookie from "js-cookie";

export default {
    namespaced: true,
    state: {
        userInfo: Cookie.get("userInfo") ? JSON.parse(Cookie.get("userInfo")) : "",
        tokenInfo: Cookie.get("tokenInfo") ? JSON.parse(Cookie.get("tokenInfo")) : "",
        permissions: null,
        roles: null,
    },
    getters: {},
    mutations: {
        setUserInfo(state, user) {
            //用户信息,随用随存,不设时限,随浏览器关闭而清除
            state.userInfo = user;
            if (user) {
                Cookie.set("userInfo", JSON.stringify(user));
            } else {
                Cookie.remove("userInfo");
            }
        },
        setTokenInfo(state, token) {
            //token信息,执行登录操作时进行保存,时间7天
            state.tokenInfo = token;
            if (token) {
                Cookie.set("tokenInfo", JSON.stringify(token), {expires: 7});
            } else {
                Cookie.remove("tokenInfo");
            }
        },
    },
    actions: {
        setUserInfoAsync(context, user) {
            context.commit("setUserInfo", user);
        },
    },
};

【use-demo.vue】

<template>
    <div class="home tlc"></div>
</template>

<script>
import { useStore } from "vuex";

export default {
    setup() {
        const $store=useStore()
        console.log($store.state.account.userInfo)
        console.log($store.getters.account.xxx)
        $store.commit("account/setUserInfo",xxx)
        $store.dispatch("account/setUserInfoAsync",xxx)
    },
};
</script>

<style scoped lang="less"></style>

mapState、mapGetters、mapMutations、mapActions封装

【mapState】


【mapGetters】


【mapMutations】


【mapActions】


标签:配置,tokenInfo,state,Cookie,userInfo,vue3,import,vuex,store
From: https://www.cnblogs.com/huihuihero/p/16730161.html

相关文章

  • JeecgBoot 3.4.2 版本发布,Vue3版本大升级
    项目介绍JeecgBoot是一款企业级的低代码平台!前后端分离架构SpringBoot2.x,SpringCloud,AntDesign&Vue,Mybatis-plus,Shiro,JWT支持微服务。强大的代码生成器让前后端代码一......
  • OpenCV CMake windows下 C++ OpenCV配置及x86编译(傻瓜式教程)
    本傻瓜教程需要的环境如下:IDE:vs2015或vs2017, windows10或11关于vs的版本,个人觉得不管是社区版个人版还是企业版,对于我们工作学习的个人来说都一样,......
  • AndroidStudio_项目配置
    build.gradle//Top-levelbuildfilewhereyoucanaddconfigurationoptionscommontoallsub-projects/modules.buildscript{//fromleanrepositories{maven......
  • Highlight shopify主题模板配置修改
    Highlightshopify主题以创造性和吸引人的方式展示值得关注的产品,为较长的文本部分进行了优化,以支持品牌故事叙述,主题设置步骤简介,以允许快速启动,旨在展示形象,支持视觉品牌......
  • R、01 VSCODE 配置 R 环境快速指南、4.2.1版本
    安装最新版R-4.2.1R:TheRProjectforStatisticalComputing(r-project.org)有大量镜像供选择下载,找中国地区镜像下载会快一点。安装一口气Next到底。https://cran......
  • Fedora 36 配置 zsh
    查看系统预设Shell。cat/etc/Shells安装zsh。sudodnf-yinstallzsh安装oh-my-zsh,使用一条命令即可。sh-c"$(curl-fsSLhttps://raw.github.com/ohmyzsh/oh......
  • JadConfig 注解驱动的java 配置管理包
    JadConfig是graylog开源的一个基于注解驱动的java配置管理包,graylogserver对于配置的管理就是使用了此包JadConfig使用比较简单,但是功能还是很强大的,配置包含了校......
  • sftp配置
    导言有很多方法,可实现在网络上分享文件。其中之一为FTP协议。但FTP通过明文传输数据,不安全。幸运的是,SSH协议族中包含了用于传输文件的SFTP协议。事实上,任何远程主机的用......
  • [hystrix] 常用的HystrixCommand配置
    @HystrixCommand(fallbackMethod="fallback",//降级方法commandProperties={@HystrixProperty(name="circuitBreaker.enabled......
  • 微信开发者工具配置目录转移到别的盘,节省系统盘空间
    经常用微信开发者工具,发现它在 C:\Users\Administrator\AppData\Local\微信开发者工具\UserData目录下会多出很多文件,占用很大的存储空间,我的用了几十个G,为了解决......