方法一:(不友好,页面会白屏,不推荐使用)

在退出登录的loginOut 方法里面:

window.location.reload()

方法二 : (不会出现白屏,推荐使用)

利用v-if控制router-view,在根组件APP.vue中实现一个刷新方法

<template><router-view v-if="isRouterAlive"/>     //路由的组件
</template>
<script>
export default {data () {return {isRouterAlive: true}},methods: {reload () {this.isRouterAlive = falsethis.$nextTick(() => (this.isRouterAlive = true))}   }
}
</script>

然后使用的时候调用: this.reload() 方法

方法三 : vuex清除token (不会出现白屏,推荐使用)

vuex清除token

由于项目中需要一个用户登出的功能,而数据放在Vuex中在登出没有刷新时数据并不会更新
所以找到了这样一个很不错的方法

将state以各种方式保存
注册时调用函数赋值
清空时再将保存的state赋值替换当前的state
over
1. 首先默认state时要用新的方法注册
把数据写在函数的返回值中(其他方法也可以只要能调用)

const getDefaultState = () => {return {token: getToken(),name: '',avatar: '',permList:[]}
}

 2. 给Vuex中的state赋值并注册

const state = getDefaultState();const store = new Vuex.Store({modules: {app,settings,state,permissions},getters
})

 3. 在mutations中定义方法

  RESET_STATE: (state) => {Object.assign(state, getDefaultState())},

 4. 页面中使用

    commit('RESET_STATE');

5. 全部完整代码如下:


const getDefaultState = () => {return {token: getToken(),name: '',avatar: ''}
}const state = getDefaultState()const mutations = {RESET_STATE: (state) => {Object.assign(state, getDefaultState())},
}logout({ commit, state }) {return new Promise((resolve, reject) => {logout(state.token).then(() => {removeToken() // must remove  token  firstresetRouter()commit('RESET_STATE')resolve()}).catch(error => {reject(error)})})},

6. 退出登录

组件中派发任务

    async logout() {await this.$store.dispatch("user/logout");this.$router.push(`/login?redirect=${this.$route.fullPath}`);},},

亲自测试有效:

第三种方法强烈推荐使用。

最后为了方便大家的沟通与交流请加QQ群: 625787746

请进QQ群交流:【IT博客技术分享群①】:正在跳转

vue项目退出登录清除 store 数据相关推荐

  1. Vue项目之登录注册

    Vue项目之登录注册 1. 注册 1.1 注册页面的布局 1.2 注册业务逻辑的实现 2. 登录 3.导航守卫 3.1全局导航守卫,全部路由都会经过这里.一定要调用next方法向下执行 3.2 路由独 ...

  2. vue-cli快速构建vue项目和本地模拟请求数据

    Vue-cli快速构建 Vue 项目和本地模拟请求数据 1 前提: 安装了 node.js 首先: 全局安装 vue-cli npm intsall vue-cli -g (-g代表全局安装) 2 使 ...

  3. vue项目实现登录/退出功能(包括token机制)

    源码地址:https://gitee.com/cheng-xuyuan/blogWeb.git(请忽略这句) 一.登录业务的相关技术点 http是无状态的,为记录登录状态可通过cookie-sessi ...

  4. vue项目实现登录(sessionStorage 存储 token)

    前提参考:vue项目封装axios 思路: // 1, 前端校验,校验成功后向后台传用户名和密码(每次请求接口都要传 token) // 2, 后端收到请求,验证用户名和密码,验证成功,生成 toke ...

  5. vue 关闭 窗口后清除所有数据_Vue首屏加载速度优化,我用这几个技巧提升80%以上...

    前端潮咖 点击上面蓝字,关注我们! 关注 关注前端潮咖,每日精选好文 作者:谁动了我的橘子 来源:https://juejin.im/post/5edf5b22e51d4578975a7024 在Vu ...

  6. [Vue项目实战]登录功能实现

    登录功能实现 写在前面 登录概述 登录业务流程 登录业务的相关技术点 登录---token原理分析 登录功能实现 登录页面的布局 在components文件下创建一个vue文件 配置路由(并添加路由重 ...

  7. Vue项目中v-for无法渲染数据

    在Vue项目中,我们想要实现下面的布局效果 后端返回的数据格式如下,可以看出产品列表五张图的数据位于同一个数组中 而我的html结构如下: 我希望直接渲染左边一张大图,然后右边的四张小图通过v-for ...

  8. vue项目 - Mockjs 模拟后台接口数据

    Mock 可以进行生成随机数据,模拟后端接口数据,从而实现开发时,前后端分离,提高效率. 1.安装 npm i mockjs -S or yarn add mockjs 2.引入 在src文件目录下, ...

  9. Vue项目中使用props传递数据并允许子组件修改的方案

    在项目中遇到了一个相关需求: 一个页面中为了能够使代码更加简洁和易于查看,将其分成了多个功能模块.此时多个功能模块都需要使用共同的一组数据进行展现或对其进行修改.此时考虑到Vue项目中的数据通信方式: ...

  10. vue项目中使用mock模拟数据

    一.先在vue项目中安装依赖 # 使用axios发送ajax cnpm install axios --save # 使用mockjs产生随机数据 cnpm install mockjs --save ...

最新文章

  1. 我,斯坦福AI读博,李飞飞是师娘,5年5篇顶会论文,依然一度抑郁怀疑人生
  2. 演讲十忌(翻译并制作成PPT)
  3. JMeter测试TCP/IP Socket应用的性能
  4. JAVA List集合转Page(分页对象)
  5. 搜索图片及相似度探秘 二
  6. 谷歌发布2012年搜索上升最快关键词 江南style上榜
  7. 花式上分算法大赛,速看鹅厂六强团队解题思路集锦【附PPT下载】
  8. 微信小程序在组件中关闭小程序
  9. BZOJ 2821: 作诗(Poetize) [分块]
  10. word域转换html,word域代码转换html丢失解决办法.docx
  11. Unity Panel 控件
  12. 互联网营销师淘宝主播
  13. TunePat Amazon Video Downloader使用教程
  14. python水印_使用Python PIL 给图片添加水印
  15. nuc10黑苹果无法wifi上网
  16. ffmepg 视频添加水印 —— 筑梦之路
  17. 二进制的应用——枚举子集
  18. JAVA使用接口实现类的功能------JAVA入门基础教程
  19. 城市轨道交通信号系统学习笔记(一)信号系统的特点
  20. Matplotlib学习笔记(第一章)

热门文章

  1. 用手机打开word图表位置很乱_干货 | 论文格式调半天?Word攻略帮你统统都搞定...
  2. 世界上最伟大的音乐、最经典的名曲都在这里!!!
  3. CN2专线和普通国际对比优势在哪里 有什么优势
  4. Git 图标无法正常显示解决方案
  5. 年货节买什么东西好?2022新年好物推荐
  6. Revit二开--删除所有导入cad文件
  7. win10桌面未找到计算机,两种方法帮你解决Win10桌面找不到IE浏览器
  8. 机器学习(十)——支持向量机
  9. Ubuntu终端打不开
  10. 计算机无法启动bios,笔记本进不了bios的解决方法