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 相关文章推荐
IE和Mozilla的兼容性汇总event
Aug 12 Javascript
Visual Studio中js调试的方法图解
Jun 30 Javascript
jQuery中DOM树操作之使用反向插入方法实例分析
Jan 23 Javascript
javascript从作用域链谈闭包
Jul 29 Javascript
JS实现消息来时让网页标题闪动效果的方法
Apr 20 Javascript
浅谈Jquery中Ajax异步请求中的async参数的作用
Jun 06 Javascript
JS JSOP跨域请求实例详解
Jul 04 Javascript
DOM中事件处理概览与原理的全面解析
Aug 16 Javascript
什么是JavaScript注入攻击?
Sep 14 Javascript
JS控制div跳转到指定的位置的几种解决方案总结
Nov 05 Javascript
详解Node.js开发中的express-session
May 19 Javascript
Vue-Access-Control 前端用户权限控制解决方案
Dec 01 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
PHP数据库操作之基于Mysqli的数据库操作类库
2014/04/19 PHP
php通过ajax实现双击table修改内容
2014/04/28 PHP
php中遍历二维数组并以表格的形式输出的方法
2017/01/03 PHP
php pdo操作数据库示例
2017/03/10 PHP
常用js脚本
2006/12/03 Javascript
javascript中巧用“闭包”实现程序的暂停执行功能
2007/04/04 Javascript
ExtJS 入门
2010/10/29 Javascript
JS在IE下缺少标识符的错误
2014/07/23 Javascript
下拉框select的绑定示例
2014/09/04 Javascript
理解javascript中的with关键字
2016/02/15 Javascript
JavaScript资源预加载组件和滑屏组件的使用推荐
2016/03/10 Javascript
javascript jquery对form元素的常见操作详解
2016/06/12 Javascript
JavaScript数据结构之广义表的定义与表示方法详解
2017/04/12 Javascript
从零开始学习Node.js系列教程三:图片上传和显示方法示例
2017/04/13 Javascript
NodeJS设计模式总结【单例模式,适配器模式,装饰模式,观察者模式】
2017/09/06 NodeJs
JavaScript中正则表达式使数字、中文或指定字符高亮显示
2017/10/31 Javascript
VueJS 组件参数名命名与组件属性转化问题
2018/12/03 Javascript
vue动态添加路由addRoutes之不能将动态路由存入缓存的解决
2019/02/19 Javascript
JavaScript JSON使用原理及注意事项
2020/07/30 Javascript
vue实现PC端分辨率适配操作
2020/08/03 Javascript
在vue中给后台接口传的值为数组的格式代码
2020/11/12 Javascript
Python编程django实现同一个ip十分钟内只能注册一次
2017/11/03 Python
浅谈pyqt5在QMainWindow中布局的问题
2019/06/21 Python
python elasticsearch环境搭建详解
2019/09/02 Python
QML使用Python的函数过程解析
2019/09/26 Python
python模拟点击网页按钮实现方法
2020/02/25 Python
CSS3的 fit-content实现水平居中
2017/09/07 HTML / CSS
5个你不知道的HTML5的接口介绍
2013/08/07 HTML / CSS
一份全面的PHP面试问题考卷
2012/07/15 面试题
揠苗助长教学反思
2014/02/04 职场文书
股份合作协议书
2014/09/10 职场文书
财务人员个人工作总结
2015/02/27 职场文书
销售辞职信范文
2015/03/02 职场文书
社区公民道德宣传日活动总结
2015/03/23 职场文书
医院财务人员岗位职责
2015/04/14 职场文书
MySQL 十大常用字符串函数详解
2021/06/30 MySQL