上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

【工程实战篇】Vuex持久化及守卫配置

[复制链接]
  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5961

    回帖

    6760

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6760

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2022-4-20 10:10:41 | 显示全部楼层 | 阅读模式

    前文

    之前我们做了用户信息存储到vuex了
    但是一旦刷新vuex的数据就会丢失
    而且如果用户信息没有存在我们也不应该让其访问进其他页面
    所以这节课处理vuex存储问题以及路由守卫

    Vuex存储问题

    这里我们使用vuex-persistedstate库
    直接
    npm install vuex-persistedstate --save
    安装后
    在vuex中导入
    import createPersistedState from "vuex-persistedstate";
    然后设置
    plugins: [createPersistedState()],
    图片.png
    这样我们解决了页面刷新问题了
    但是有一点需要注意
    使用了Vuex-persistedstate会导致vue调试工具的vuex显示出问题
    这点目前没有找到特别好的解决办法...
    如果有心情可以挑其他库测试一下

    路由守卫

    接下来我们应该设置路由守卫了
    确保没有用户信息的时候跳转回登录页面
    按道理过期也应该跳转,但是这里我们暂时先不写
    因为我还没遇到~
    直接写一个路由拦截函数

    router.beforeEach((to, from, next) => {
      if (to.name != "home") {
        if (!store.state.UserInfo.bindUserList) {
          next({ name: "home" });
          return;
        }
      }
      next();
    })

    这里判断了store的state的UserInfo的bindUserList属性是否存在
    如果存在则认为登录,不存在则跳转回home页面
    因为使用了Vuex
    所以我们需要导入一下store
    使用
    import store from "@/store/index.js";
    导入一下
    就ok了~
    那么我们就完成了vuex持久化+路由守卫问题了

    结语

    撒花~

    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
  • TA的每日心情

    2023-12-8 22:55
  • 签到天数: 37 天

    [LV.5]常住居民I

    15

    主题

    144

    回帖

    154

    积分

    荣誉开发者

    积分
    154

    荣誉开发者油中2周年

    发表于 2022-4-20 17:20:19 | 显示全部楼层
    撒花~
    gg大动作呀
    摸鱼中
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表