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 相关文章推荐
从新浪弄下来的全屏广告代码 与使用说明
Mar 15 Javascript
JavaScript获取onclick、onchange等事件值的代码
Jul 22 Javascript
javascript实现别踩白块儿小游戏程序
Nov 22 Javascript
AngularJS中$interval的用法详解
Feb 02 Javascript
JS检测数组类型的方法小结
Mar 14 Javascript
详解Angular CLI + Electron 开发环境搭建
Jul 20 Javascript
分析JavaScript数组操作难点
Dec 18 Javascript
React Native 图片查看组件的方法
Mar 01 Javascript
为jquery的ajax请求添加超时timeout时间的操作方法
Sep 04 jQuery
vue发送websocket请求和http post请求的实例代码
Jul 11 Javascript
详解Vue template 如何支持多个根结点
Feb 10 Javascript
JavaScript实时更新当前的时间的示例代码
Jul 15 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实现分页的一个示例
2006/10/09 PHP
在PWS上安装PHP4.0正式版
2006/10/09 PHP
php预定义常量
2006/12/25 PHP
php下使用strpos需要注意 === 运算符
2010/07/17 PHP
培养自己的php编码规范
2015/09/28 PHP
值得分享的php+ajax实时聊天室
2016/07/20 PHP
javascritp实现input输入框相关限制用法
2007/06/29 Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器
2013/06/21 Javascript
js图片延迟加载的实现方法及思路
2013/07/22 Javascript
js模拟hashtable的简单实例
2014/03/06 Javascript
多种方法实现360浏览器下禁止自动填写用户名密码
2014/06/16 Javascript
jQuery使用之标记元素属性用法实例
2015/01/19 Javascript
详谈javascript中的cookie
2015/06/03 Javascript
JS模式之简单的订阅者和发布者模式完整实例
2015/06/30 Javascript
JSON+Jquery省市区三级联动
2016/01/13 Javascript
BootStrap 可编辑表Table格
2016/11/24 Javascript
微信小程序 新建登录页并实现tabBar隐藏
2017/06/13 Javascript
微信小程序之圆形进度条实现思路
2018/02/22 Javascript
vue之浏览器存储方法封装实例
2018/03/15 Javascript
jquery 实现拖动文件上传加载进度条功能
2018/03/18 jQuery
微信小程序使用scroll-view标签实现自动滑动到底部功能的实例代码
2018/11/09 Javascript
swiper实现导航滚动效果
2020/12/13 Javascript
详解Python的Django框架中的中间件
2015/07/24 Python
Python实现向服务器请求压缩数据及解压缩数据的方法示例
2017/06/09 Python
使用Python & Flask 实现RESTful Web API的实例
2017/09/19 Python
VSCode下配置python调试运行环境的方法
2018/04/06 Python
python print 按逗号或空格分隔的方法
2018/05/02 Python
Python中循环后使用list.append()数据被覆盖问题的解决
2018/07/01 Python
Python机器学习算法库scikit-learn学习之决策树实现方法详解
2019/07/04 Python
django认证系统实现自定义权限管理的方法
2019/08/28 Python
Python实现定时监测网站运行状态的示例代码
2020/09/30 Python
详解python3类型注释annotations实用案例
2021/01/20 Python
医院护士专业个人的求职信
2013/12/09 职场文书
会计专业职业规划:规划自我赢取未来
2014/02/12 职场文书
python中的3种定义类方法
2021/11/27 Python
如何解决flex文本溢出问题小结
2022/07/15 HTML / CSS