非Vuex实现的登录状态判断封装

简介: 在项目中肯定会有用户登录状态的判断,所以我们需要封装判断登录状态,用来满足整个项目的应用,当然刚不使用封装的话,会造成耦合度高,代码冗余等结果,在项目中可能常常用到vuex状态管理来进行登录状态的存,那如果项目用不到状态管理,那就可以使用简单的封装来进行登录状态判断。

在项目中肯定会有用户登录状态的判断,所以我们需要封装判断登录状态,用来满足整个项目的应用,当然刚不使用封装的话,会造成耦合度高,代码冗余等结果,在项目中可能常常用到vuex状态管理来进行登录状态的存,那如果项目用不到状态管理,那就可以使用简单的封装来进行登录状态判断。

登录状态封装

我们如果想要普通封装登录状态的话需要两个函数即获取存储的token的getToken和使用token判断是否登录的isLogin,我们需要在src目录下新建一个文件夹,又或者在我们封装请求的文件目录下新建一个auth.js即可。

getToken

获取token的话只需要通过使用localStorage取得token并返回给函数值

export function getToken() {
  return localStorage.getItem("token");
}
复制代码

isLogin

判断登录的话仅仅需要通过调用getToken获得token的值来返回布尔值从而判断用户是否登录

export function isLogin() {
  if (getToken()) {
    return true;
  }
  return false;
}
复制代码

除此之外,项目中还会有别的地方要使用到getToken,比如说在请求头中需要转入token的值等

使用方法

我们在要使用的页面中直接按需引入即可,比如说这里我们只引进isLogin

import { isLogin } from "@/request/auth";
复制代码

在引入之后,有人就问了,我们判断用if else吗,nonono,低了,隐藏分低了,来看我下面的操作

mounted() {
    // 登录判断,项目成功运行后启动
    isLogin()
      ? console.log("isLogin")
      : (console.log("Need to login"),
        this.$message.error('未登录'),
        this.$router.push("/login")
      );
  },
复制代码

注意到这里,我们的登录状态判断的触发位置需要注意一下,一般是在mounted的时候,即一般是在初始化页面完成后的钩子中进行登录状态的判断,这里一般也是页面获取信息的请求函数的位置。

除此之外,我这里的写法是?:,来进行函数触发判断的,正常来讲可能很多人会使用if,对了,这里的提示组件是element,大家可以根据自己组件库的提示来进行不一样的改动。

setToken

既然封装了getToken,那肯定要再封装个setToken,也是为了便捷一些

export function setToken(token) {
  return localStorage.setItem("token", token);
}
复制代码

最后

这里是大二前端小学生的一些些项目小总结,希望可以给你带来帮助,如果对你有帮助的话,点个小赞赞再走吧🥳


相关文章
|
2月前
在Vuex中,如何处理不同模块之间的状态同步?
在Vuex中,如何处理不同模块之间的状态同步?
17 1
|
2月前
|
资源调度 JavaScript
如何使用 Vuex 管理应用的状态?
如何使用 Vuex 管理应用的状态?
16 3
|
3月前
|
存储 JavaScript API
在Vue中,如何实现状态的共享?
在Vue中,如何实现状态的共享?
94 41
|
4月前
|
JavaScript 前端开发
Vue状态管理:请解释Vuex中的action是什么?它们有什么用途?
Vue状态管理:请解释Vuex中的action是什么?它们有什么用途?
83 2
|
6月前
|
JavaScript 前端开发 API
【Vue】数据监视&输入绑定
【Vue】数据监视&输入绑定
|
8月前
|
JavaScript API
更改redux 数据,页面未重新渲染
更改redux 数据,页面未重新渲染
|
9月前
|
存储 JavaScript 前端开发
Vue路由切换 & Axios接口取消重复请求
Vue路由切换 & Axios接口取消重复请求
139 0
|
10月前
|
JavaScript
Vue中深度拷贝对象属性,但是界面的双向绑定功能失效问题解决
Vue中深度拷贝对象属性,但是界面的双向绑定功能失效问题解决
231 0
|
10月前
|
存储 JavaScript 前端开发
Redux 状态管理库的原理及使用方式
Redux 是一种流行的状态管理库,用于在 JavaScript 应用程序中管理应用的状态。它遵循单一状态树的原则,将整个应用的状态保存在一个状态树中,并通过纯函数来修改状态。Redux 的原理和使用方式如下:
|
JavaScript
vue 里如何获取 data 中数据的初始状态?
vue 里如何获取 data 中数据的初始状态?
505 0
vue 里如何获取 data 中数据的初始状态?