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 相关文章推荐
event.srcElement+表格应用
Aug 29 Javascript
为jQuery增加join方法的实现代码
Nov 28 Javascript
IE6/7/8/9不支持exec的简写方式
May 25 Javascript
JS动态修改iframe高度和宽度的方法
Apr 01 Javascript
很全面的JavaScript常用功能汇总集合
Jan 22 Javascript
javascript类型系统_正则表达式RegExp类型详解
Jun 24 Javascript
jQuery给表格添加分页效果
Mar 02 Javascript
js截取字符串功能的实现方法
Sep 27 Javascript
Angular弹出模态框的两种方式
Oct 19 Javascript
angularjs实现柱状图动态加载的示例
Dec 11 Javascript
vue中使用heatmapjs的示例代码(结合百度地图)
Sep 05 Javascript
vue车牌号校验和银行校验实战
Jan 23 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函数解决SQL injection
2006/12/09 PHP
PHP编码规范-php coding standard
2007/03/16 PHP
php学习之function的用法
2012/07/14 PHP
PHP面向对象教程之自定义类
2014/06/10 PHP
Sublime里直接运行PHP配置方法
2014/11/28 PHP
浅谈PHP错误类型及屏蔽方法
2017/05/27 PHP
thinkPHP框架自动填充原理与用法分析
2018/04/03 PHP
利用谷歌地图API获取点与点的距离的js代码
2012/10/11 Javascript
使用JS 清空File控件的路径值
2013/07/08 Javascript
JavaScript两种跨域技术全面介绍
2014/04/16 Javascript
JS获得浏览器版本和操作系统版本的例子
2014/05/13 Javascript
告诉你什么是javascript的回调函数
2014/09/04 Javascript
js实现Select列表内容自动滚动效果代码
2015/08/20 Javascript
jQuery搜索框效果实现代码(百度关键词联想)
2021/02/25 Javascript
JavaScript 计算笛卡尔积实例详解
2016/12/02 Javascript
mui开发中获取单选按钮、复选框的值(实例讲解)
2017/07/24 Javascript
JS和jQuery通过this获取html标签中的属性值(实例代码)
2017/09/11 jQuery
vue中如何动态绑定图片,vue中通过data返回图片路径的方法
2018/02/07 Javascript
vue实现密码显示隐藏切换功能
2018/02/23 Javascript
深入理解Puppeteer的入门教程和实践
2019/03/05 Javascript
Emberjs 通过 axios 下载文件的方法
2019/09/03 Javascript
JavaScript Blob对象原理及用法详解
2020/10/14 Javascript
树莓派中python获取GY-85九轴模块信息示例
2013/12/05 Python
python实现随机森林random forest的原理及方法
2017/12/21 Python
对Python闭包与延迟绑定的方法详解
2019/01/07 Python
python监控进程状态,记录重启时间及进程号的实例
2019/07/15 Python
python 下载文件的几种方法汇总
2021/01/06 Python
HTML5逐步分析实现拖放功能的方法
2020/09/30 HTML / CSS
日本食品网上商店:JaponShop.com
2017/11/28 全球购物
丝芙兰香港官网:Sephora香港
2018/03/13 全球购物
和领导吃饭祝酒词
2015/08/11 职场文书
《吃水不忘挖井人》教学反思
2016/02/22 职场文书
《世界多美呀》教学反思
2016/02/22 职场文书
关于艺术节的开幕致辞
2016/03/04 职场文书
创业计划书之孕婴生活馆
2019/11/11 职场文书
Vue CLI中模式与环境变量的深入详解
2021/05/30 Vue.js