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技巧
Dec 06 Javascript
jQuery 类twitter的文本字数限制带提示效果插件
Apr 16 Javascript
JQuery Dialog的内存泄露问题解决方法
Jun 18 Javascript
基于jquery的设置页面文本框 只能输入数字的实现代码
Apr 19 Javascript
基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
May 12 Javascript
JS实现获取剪贴板内容的方法
Jun 21 Javascript
vue+axios+mock.js环境搭建的方法步骤
Aug 28 Javascript
layui富文本编辑器前端无法取值的解决方法
Sep 18 Javascript
JS实现简单随机3D骰子
Oct 24 Javascript
Vue实现兄弟组件间的联动效果
Jan 21 Javascript
vue组件中节流函数的失效的原因和解决方法
Dec 02 Vue.js
VUE中鼠标滚轮使div左右滚动的方法详解
Dec 14 Vue.js
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
用PHP实现登陆验证码(类似条行码状)
2006/10/09 PHP
一周让你学会PHP 不错的学习资料
2009/02/06 PHP
UTF8编码内的繁简转换的PHP类
2009/07/09 PHP
php使用array_search函数实现数组查找的方法
2015/06/12 PHP
在WordPress中使用PHP脚本来判断访客来自什么国家
2015/12/10 PHP
php探针不显示内存解决方法
2019/09/17 PHP
解决laravel(5.5)访问public报错的问题
2019/10/12 PHP
PHP如何使用array_unshift()在数组开头插入元素
2020/09/01 PHP
给moz-firefox下添加IE方法和属性
2007/04/10 Javascript
jQuery处理json数据返回数组和输出的方法
2015/03/11 Javascript
使用vue构建一个上传图片表单
2017/07/04 Javascript
backbone简介_动力节点Java学院整理
2017/07/14 Javascript
js判断传入时间和当前时间大小实例(超简单)
2018/01/11 Javascript
基于axios 的responseType类型的设置方法
2019/10/29 Javascript
bootstrap实现嵌套模态框的实例代码
2020/01/10 Javascript
利用原生JS实现欢乐水果机小游戏
2020/04/23 Javascript
JQuery插件tablesorter表格排序实现过程解析
2020/05/28 jQuery
vue中h5端打开app(判断是安卓还是苹果)
2021/02/26 Vue.js
Python函数中*args和**kwargs来传递变长参数的用法
2016/01/26 Python
Django实战之用户认证(初始配置)
2018/07/16 Python
浅谈django框架集成swagger以及自定义参数问题
2020/07/07 Python
HTML5实现简单图片上传所遇到的问题及解决办法
2016/01/20 HTML / CSS
澳大利亚正品化妆品之家:Cosmetic Capital
2017/07/03 全球购物
什么是索引指示器
2012/08/20 面试题
体育教育专业毕业生自荐信
2013/11/15 职场文书
自荐信格式
2013/12/01 职场文书
活动总结格式
2014/08/30 职场文书
高一学年自我鉴定范文(3篇)
2014/09/26 职场文书
工作岗位职责范本
2015/02/15 职场文书
开除员工通知
2015/04/22 职场文书
幸福终点站观后感
2015/06/04 职场文书
《七律·长征》教学反思
2016/02/16 职场文书
读完《骆驼祥子》的观后感!
2019/07/05 职场文书
请学会珍惜眼前,因为人生没有下辈子!
2019/11/12 职场文书
详解Python魔法方法之描述符类
2021/05/26 Python
SQL Server使用PIVOT与unPIVOT实现行列转换
2022/05/25 SQL Server