前言
有些业务涉及到获取当前的用户名或者其他的数据,方法有很多种,例如vuex,localstorage,session,cookie都可以做到
一、vuex是什么?
Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 + 库。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
大白话就是他是一个公共的仓库,可以将数据存进去再取出来具体用法可以参考vuex官网,我这里用的不是这方法就不过多介绍了
1、获取token中的数据并作为参数传给后端
代码如下(示例):
// chfpdrName chfpdrCode deptCodg deptName
async getysks() {
var userid = localStorage.getItem("token")
console.log(userid);
const {
data: results
} = await this.$http.get('自己的路径' + userid)
if (results.status !== 200) return this.$message.error("删除失败")
需要渲染的组件 = results.data.name
需要渲染的组件 = results.data.username
需要渲染的组件 = results.data.deptid
需要渲染的组件 = results.data.deptname
// 移除组件
this.update = false
// 在组件移除后,重新渲染组件
// this.$nextTick可实现在DOM 状态更新后,执行传入的方法。
this.$nextTick(() => {
this.update = true
})
},
2.后端接收数据并根据token查到的账号进行查询
代码如下(示例):
//控制层 @RequestMapping("/自己的路径") public SysResult getysks(@RequestParam("userid") String userid){ UesrDict uesrDict = medicineService.getysks(userid); System.out.println(userid); return SysResult.success(uesrDict); }//业务层接口
UesrDict getysks(String userid);//业务层
@Override public UesrDict getysks(String userid) { UesrDict uesrDict = medicineMapper.getysks(userid); return uesrDict; }//mapper数据获取sql
@Select("select a.username,a.name,a.deptid,a.deptname from 自己的表 a where a.username = #{userid}") UesrDict getysks(String userid);
总结
总体来说关键就是在于先获取到登陆系统的用户名,剩下的就简单了,获取到之后直接传到后端然后作为查询条件