Vue项目使用localStorage+Vuex保存用户登录信息


Posted in Javascript onMay 27, 2019

本文实例为大家分享了Vue使用localStorage+Vuex保存用户登录信息的具体代码,供大家参考,具体内容如下

api.js

import axios from 'axios'
const baseURL = 'http://XXX

// 全局的 axios 默认值
axios.defaults.baseURL = baseURL

// 登录请求
const loginCheck = params => {
  return axios.post('/login', params).then(res => {
    return res.data
  })
}
export { loginCheck }

store.js

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

const actions = {}
const mutations = {
  handleUserName: (state, user_name) => {
    state.user_name = user_name
      // 把登录的用户的名保存到localStorage中,防止页面刷新,导致vuex重新启动,用户名就成为初始值(初始值为空)的情况
    localStorage.setItem('user_name', user_name)
  }
}
const state = {
  user_name: '' || localStorage.getItem('user_name')
}
// getters 只会依赖 state 中的成员去更新
const getters = {
  userName: (state) => state.user_name
}

const store = new Vuex.Store({
  actions,
  mutations,
  state,
  getters
})
export { store }

login.vue

methods:{
  login(formName){
   this.$refs[formName].validate((valid) => {
     if (valid) {
      // 调用登录请求接口
      loginCheck(this.form).then(res=>{
      //  console.log(res);
       // 登录成功,提示成功信息,然后跳转到首页,同时将token保存到localstorage中, 将登录名使用vuex传递到Home页面
       if(res.meta.status === 200){
        // 提示成功信息
        this.$message({
          message: res.meta.msg,
          type: 'success'
        });
        var that = this;
        // 跳转到首页
        setTimeout(function(){
          that.$router.push({name:'Home'})
        },1000)
        localStorage.setItem('token',res.data.token)
        // 将登录名使用vuex传递到Home页面
        this.$store.commit('handleUserName',res.data.username);
       }else{
        // 登录失败,就提示错误信息
        this.$message({
          message: '登录失败,'+res.meta.msg,
          type: 'error'
        });
       }
      })
     } else {
      
      return false;
     }
    });
  }
 }

Home.vue

您好,{{$store.getters.username}}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 学习之旅 (3)
Feb 05 Javascript
JQuery 获取和设置Select选项的代码
Feb 07 Javascript
BOM与DOM的区别分析
Oct 26 Javascript
jQuery实现防止提交按钮被双击的方法
Mar 24 Javascript
this,this,再次讨论javascript中的this,超全面(经典)
Jan 05 Javascript
JavaScript数据操作_浅谈原始值和引用值的操作本质
Aug 23 Javascript
node.js实现博客小爬虫的实例代码
Oct 08 Javascript
微信小程序 wxapp导航 navigator详解
Oct 31 Javascript
bootstrap vue.js实现tab效果
Feb 07 Javascript
vue 本地服务不能被外部IP访问的完美解决方法
Oct 29 Javascript
基于js Canvas实现二次贝塞尔曲线
Dec 25 Javascript
Vue配置marked链接添加target="_blank"的方法
Jul 19 Javascript
vue cli3.0 引入eslint 结合vscode使用
May 27 #Javascript
深入浅出了解Node.js Streams
May 27 #Javascript
JavaScript怎样在删除前添加确认弹出框?
May 27 #Javascript
vue项目前端错误收集之sentry教程详解
May 27 #Javascript
了解javascript中变量及函数的提升
May 27 #Javascript
基于vue实现一个禅道主页拖拽效果
May 27 #Javascript
jQuery实现input输入框获取焦点与失去焦点时提示的消失与显示功能示例
May 27 #jQuery
You might like
这东西价格,可以买几台TECSUN S-2000
2021/03/02 无线电
php缩放图片(根据宽高的等比例缩放)实例介绍
2013/06/09 PHP
PHP统计二维数组元素个数的方法
2013/11/12 PHP
WordPress中调试缩略图的相关PHP函数使用解析
2016/01/07 PHP
解决php扩展安装不生效问题
2019/10/25 PHP
extjs 的权限问题 要求控制的对象是 菜单,按钮,URL
2010/03/09 Javascript
基于jQuery实现下拉收缩(展开与折叠)特效
2012/12/25 Javascript
js兼容的placeholder属性详解
2013/08/18 Javascript
js 通用订单代码
2013/12/23 Javascript
基于jQuery 实现bootstrapValidator下的全局验证
2015/12/07 Javascript
JavaScript toUpperCase()方法使用详解
2016/08/26 Javascript
简单实现Bootstrap标签页
2020/08/09 Javascript
实现图片首尾平滑轮播(JS原生方法—节流)
2017/10/17 Javascript
JS排序算法之冒泡排序,选择排序与插入排序实例分析
2017/12/13 Javascript
VSCode配置react开发环境的步骤
2017/12/27 Javascript
JS中的算法与数据结构之二叉查找树(Binary Sort Tree)实例详解
2019/08/16 Javascript
jQuery鼠标滑过横向时间轴样式(代码详解)
2019/11/01 jQuery
Element实现表格嵌套、多个表格共用一个表头的方法
2020/05/09 Javascript
vue相同路由跳转强制刷新该路由组件操作
2020/08/05 Javascript
Python中使用platform模块获取系统信息的用法教程
2016/07/08 Python
Python爬虫包BeautifulSoup学习实例(五)
2018/06/17 Python
Python pytesseract验证码识别库用法解析
2020/06/29 Python
Pycharm操作Git及GitHub的步骤详解
2020/10/27 Python
CSS3中Transform动画属性用法详解
2016/07/04 HTML / CSS
STUBHUB日本:购买和出售全球活动门票
2018/07/01 全球购物
Clarks西班牙官方在线商店:clarks鞋
2019/05/03 全球购物
煤矿班组长的职责
2013/12/25 职场文书
高中自我评价范文
2014/01/27 职场文书
婚假请假条格式及范文
2014/04/10 职场文书
初中新生军训方案
2014/05/13 职场文书
感情真挚的毕业生求职信
2014/07/19 职场文书
2014年节能减排工作总结
2014/12/06 职场文书
内勤岗位职责范本
2015/04/13 职场文书
新学期主题班会
2015/08/17 职场文书
升学宴家长答谢词
2015/09/29 职场文书
解析MySQL索引的作用
2022/03/03 MySQL