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 相关文章推荐
基于Jquery的实现回车键Enter切换焦点
Sep 14 Javascript
jQuery源码解读之addClass()方法分析
Feb 20 Javascript
利用原生js和jQuery实现单选框的勾选和取消操作的方法
Sep 04 Javascript
详解node.js中的npm和webpack配置方法
Jan 21 Javascript
在vue中解决提示警告 for循环报错的方法
Sep 28 Javascript
Vuex持久化插件(vuex-persistedstate)解决刷新数据消失的问题
Apr 16 Javascript
ES6 class的应用实例分析
Jun 27 Javascript
java遇到微信小程序 "支付验证签名失败" 问题解决
Dec 22 Javascript
js实现搜索提示框效果
Sep 05 Javascript
Vue仿Bibibili首页的问题
Jan 21 Vue.js
javascript Number 与 Math对象的介绍
Nov 17 Javascript
vue+elementUI实现表格列的显示与隐藏
Apr 13 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
给多个地址发邮件的类
2006/10/09 PHP
php中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
2011/05/04 PHP
PHP获取当前日期和时间及格式化方法参数
2015/05/11 PHP
PHP数据库操作三:redis用法分析
2017/08/16 PHP
PHP实现的微信APP支付功能示例【基于TP5框架】
2019/09/16 PHP
Mootools 1.2教程 类(一)
2009/09/15 Javascript
JavaScript经典效果集锦
2010/07/06 Javascript
jquery maxlength使用说明
2011/09/09 Javascript
不用锚点也可以平滑滚动到页面的指定位置实现代码
2013/05/08 Javascript
Node.js实现在目录中查找某个字符串及所在文件
2014/09/03 Javascript
浅析JavaScript中命名空间namespace模式
2016/06/22 Javascript
在点击div中的p时,如何阻止事件冒泡
2017/02/07 Javascript
VUE饿了么树形控件添加增删改功能的示例代码
2017/10/17 Javascript
从零开始实现Vue简单的Toast插件
2018/12/03 Javascript
发布一款npm包帮助理解npm的使用
2019/01/03 Javascript
js中forEach,for in,for of循环的用法示例小结
2020/03/14 Javascript
Python 两个列表的差集、并集和交集实现代码
2016/09/21 Python
python3.5绘制随机漫步图
2018/08/27 Python
python使用thrift教程的方法示例
2019/03/21 Python
pyqt5 实现在别的窗口弹出进度条
2019/06/18 Python
python使用Qt界面以及逻辑实现方法
2019/07/10 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
2019/07/19 Python
Python中and和or如何使用
2020/05/28 Python
python代码区分大小写吗
2020/06/17 Python
英国第一家领先的在线处方眼镜零售商:Glasses Direct
2018/02/23 全球购物
美国在线宠物商店:Chewy
2019/01/12 全球购物
adidas马来西亚官网:adidas MY
2020/09/12 全球购物
编写类String的构造函数、析构函数和赋值函数
2012/05/29 面试题
行政总经理岗位职责
2013/12/05 职场文书
员工薪酬激励方案
2014/06/13 职场文书
委托证明书
2014/09/17 职场文书
学校机关党总支领导班子整改工作方案
2014/10/26 职场文书
2015年董事长秘书工作总结
2015/07/23 职场文书
原生JS封装vue Tab切换效果
2021/04/28 Vue.js
详解Java ES多节点任务的高效分发与收集实现
2021/06/30 Java/Android
教你win10系统中APPCRASH事件问题解决方法
2022/07/15 数码科技