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开发之三数组对象实例介绍
Nov 12 Javascript
JS获取鼠标坐标的实例方法
Jul 18 Javascript
jquery实现从数组移除指定的值
Jun 24 Javascript
VUE axios上传图片到七牛的实例代码
Jul 28 Javascript
微信小程序支付及退款流程详解
Nov 30 Javascript
Vue v2.4中新增的$attrs及$listeners属性使用教程
Jan 08 Javascript
Angular4 ElementRef的应用
Feb 26 Javascript
Angular学习教程之RouterLink花式跳转
May 03 Javascript
基于Vue+element-ui 的Table二次封装的实现
Jul 20 Javascript
微信小程序wepy框架笔记小结
Aug 08 Javascript
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
Jan 18 jQuery
纯js实现无缝滚动功能代码实例
Feb 21 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/10/09 PHP
一个简单的php路由类
2016/05/29 PHP
php版微信小店API二次开发及使用示例
2016/11/12 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
2018/04/20 PHP
tp5(thinkPHP5框架)时间查询操作实例分析
2019/05/29 PHP
基于PHP实现微信小程序客服消息功能
2019/08/12 PHP
Laravel框架控制器,视图及模型操作图文详解
2019/12/04 PHP
JS数组(Array)处理函数整理
2014/12/07 Javascript
jQuery实现鼠标划过添加和删除class的方法
2015/06/26 Javascript
jQuery右下角旋转环状菜单特效代码
2015/08/10 Javascript
jQuery webuploader分片上传大文件
2016/11/07 Javascript
单行 JS 实现移动端金钱格式的输入规则
2017/05/22 Javascript
Angularjs的键盘事件的绑定
2017/07/27 Javascript
ionic 3.0+ 项目搭建运行环境的教程
2017/08/09 Javascript
nodejs爬虫初试superagent和cheerio
2018/03/05 NodeJs
详解如何为你的angular app构建一个第三方库
2018/12/07 Javascript
原生JS实现顶部导航栏显示按钮+搜索框功能
2019/12/25 Javascript
解决vue刷新页面以后丢失store的数据问题
2020/08/11 Javascript
JavaScript实现矩形块大小任意缩放
2020/08/25 Javascript
Angular处理未可知异常错误的方法详解
2021/01/17 Javascript
python获取糗百图片代码实例
2013/12/18 Python
Python中的hypot()方法使用简介
2015/05/18 Python
Python基于回溯法子集树模板解决最佳作业调度问题示例
2017/09/08 Python
Python制作词云的方法
2018/01/03 Python
python文件拆分与重组实例
2018/12/10 Python
python reverse反转部分数组的实例
2018/12/13 Python
TensorFlow tf.nn.max_pool实现池化操作方式
2020/01/04 Python
python的help函数如何使用
2020/06/11 Python
Selenium环境变量配置(火狐浏览器)及验证实现
2020/12/07 Python
html5给汉字加拼音加进度条的实现代码
2020/04/07 HTML / CSS
Jo Malone美国官网:祖玛珑香水
2017/03/27 全球购物
开门红主持词
2014/04/02 职场文书
医生见习报告范文
2014/11/03 职场文书
初中英语教师个人工作总结
2015/02/09 职场文书
Python WSGI 规范简介
2021/04/11 Python
MySQL一些常用高级SQL语句
2021/07/03 MySQL