本文导读目录:
1、2024年12月华为荣耀magic 2(betv网络电视)
2、2003sp2(office2003 sp2和sp3什么不同啊)
vue-admin-template权限管理(vuetemplateadmin)
本文主要介绍vue-admin-模板权限管理,下面一起看看vue-admin-模板权限管理相关资讯。
在vue-admin-template角色权限设置()中提到了如何根据用户角色控制访问,但是在项目的实际使用中发现了一些存在的问题。下面主要针对这些存在的问题进行修改和完善。
页面刷新后头像等个人信息消失的原因:页面登录成功后,项目通过getInfo方法获取个人信息并存储在vuex中,但页面刷新后,vuex中的数据会丢失。这是因为js代码运行在内存中,代码运行时的所有变量和函数也都存储在内存中。刷新页面后,之前应用的内存被释放,脚本代码被重新加载,变量被重新分配,所以这些数据如果要存储的话,必须外部存储。解决方案:获取数据后,在存储器中保存数据的副本。这里需要注意的是:尽量不要在localStorage中存储过多的数据,否则会影响页面加载性能。从/API/用户从amp导入{getToken,setToken,removeToken};;/utils/auth;从amp导入{resetRouter};;/路由器constgetDefaultState=={return{//使用localStorag:g:localstorage.getitem(;姓名和名称。;)刷新后还存在?JSON.parse(localstorag:;avatar:localstorage.getitem(;阿凡达)?JSON.parse(localstorag:;rol:localstorage.getitem(;角色)?JSON.parse(localstorag:[]}}常量统计e=getDefaultStateconstmutations={R:(state)={object.assign(stat:(stat:(stat:(state,avatar)={state.avatar=avatar}}constactions={//用户登录登录({mit},userInfo){const{username,password}=userInfo返回新的承诺((resolve,reject){login然后(response={const{data}=响应提交(设置令牌,data.token)setToken(data.token)resolve})。catch(error={reject(error)}})},//获取用户信息getInfo({mit,state}){returnnewPromise((resolve,reject)={getInfo(state.token)。然后(response={const{data}=response;如果(!数据){退货拒绝(验证失败,请重新登录!)}const{name,roles,avatar}=data//在lo备份个人信息。本地存储。;角色,JSON。Stringify(roles))本地存储。;角色,JSON。Stringify(roles))本地存储。;阿凡达,JSON。Stringify(头像))如果(!roles||roles.length=){reject(;您不是有效身份!)}//在localstorageif(roles.includes(;商店经理)){本地存储。setitem(;许可,JSON。stringify([;添加,编辑和删除。;]);}elseif(roles.includes(;收银员)||角色.includes(;技术员和技术员。;)||角色.includes(;造型师){本地存储。setitem(;许可,JSON。stringify([]);}提交(SET_NAME,name)提交(设置角色角色)提交(设定_头像,头像)解析(数据)})。catch(error={Reject(error)}})},//用户注销注销({mit,state}){returnnewPromise((resolve,Reject)={logout(state。token)。然后(={removetoken//mustremovetokenfirstresetrouter//记得清空localstorage。removeitem(;许可).localStorage.removeItem;姓名和名称。;)localstorage.removeitem(;角色)localstorage.removeitem(;阿凡达)提交(重置状态)resolve})。猫ch(error={reject(error)}})},//移除令牌resetToken({mit}){returnnewPromise(resolve={removetoken//必须先移除令牌//记得清除localstorage.removeitem(;许可)localstorage.removeitem(;姓名和名称。;)localstorage.removeitem(;角色)localstorage.removeitem(;阿凡达).提交(重置状态)Resolve}}exportdefault{namespac:true,state,mutations,actions}这样刷新后vuex中的值依然存在~
页面刷新后,动态路由无法跳转到/2024年12月华为荣耀magic 2(betv网络电视)。一方面,页面刷新后对应的vuex的值失效,另一方面,即使该值仍然有效,但是在addRoutes动态添加路由之前,从静态找到页面,导致一直跳转到。解决方案:路线可以存储在localStorage中。因为之前已经持久化了角色,所以可以在路由预保护中直接处理刷新情况。主要思想是在路由中加入动态路由表后,路由也是动态加入的!需要注意的是,多次调用router.addRoutes方重复添加路由,并警告路由名重复,可以重新打包一个方法。将router/index.js中的addRoutes方法重新打包//解决路由名重复的问题。$addroutes=params={router.match:router.options.routes//key代码})。matcherrouter.addroutes(params);};删除*查找{path:;*,redirect:;/;,hidden:true}在路由器/index.js的静态路由中在rc/permission.js中,刷新情况在router.beforeeach(async(to,from,next)={//启动进度条NProgress.start//设置页面标题document.title=getpagetitle(to.meta.title)//判断用户是否已经登录consthasToken=getTokenif(hasToken){if(to.path===;/登录){//如果登录了,下一步重定向到首页({path:;/;})nprogress。done}else{//添加routes后第一次访问添加的路由时,屏幕会是空白的,因为刚添加routes//后就立即访问添加的路由,但是此时添加routes的执行还没有结束,所以可以找不到新添加的路由,导致屏幕空白。所以你需要再次访问路线。//此时将使用Next({…to,replac:true})来确保在添加路由时,已经完全加载了动态添加的路由。//replac:trueinnext({…to,replac:true})只是一个设置信息,告诉VUE在这个操作之后,你可以t通过浏览器的后退按钮返回到以前的路线。//通过getInfo判断用户是否获得了权限角色consthasroles=store.getters.rolesstore.getters.roles.length;If(hasRoles){//如果正在刷新if(store。状态。许可。路线。length==){//生成可访问的路由constaessroutes=awaitstore。派遣(许可/生成路线。;,存储。getters.roles)根据角色;//动态添加路由路由器呃。$addroutes(a:;*redirect:;/;,hidd:真})console.log(router.options.routes)下一个({...对,replac:真});}else{next}}else{try{//getuserinfo//注意:角色必须是数组形式,比如[;行政及管理。;]或者,[;开发商,编辑]const{roles}=Awaitstore。派遣(用户/getinfo;)//根据角色生成可访问的路由ConstAessRoutes=Awaitstore。派遣(许可/生成路线。;,角色);//动态添加路由路由器。$addroutes(a:;*redirect:;/;,Hidd:为真})//确保addRoutes已完成//将其设置为真,以便导航不会留下历史记录({...对,replac:是真的});}catch(error){//删除令牌并转到登录页面to重新登录等待store.dispatch。;用户/重置令牌)message.error(error||;有错误)下一个(`/登录?redirect=${to.path}`)nprogress.done}}}else{/*没有标记*/if(whiteList.indexOf(to.path)!==-){//在免费登录白名单中,直接进入next}else{//其他没有访问权限的页面被重定向到登录页面。下一个(`/登录?重定向=${到。path}`)nprogress。done}})It;在这里刷新没有问题!!结束了。
betv网络电视sp(officesp和sp什么不同啊
2024年12月华为荣耀magic 2(betv网络电视)officesp和sp什么不同啊
ServicePack就是以前的补丁集合,修正了之前版本的漏洞和错误,一般没有功能增减。简单说,SP比SP新。
WINSP和R有什么区别
华为荣耀magic 2的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于betv网络电视、华为荣耀magic 2的信息别忘了在本站进行查找喔。