动态路由渲染(思路)

什么是动态路由

        在我们进行登录逻辑时会由于不同的身份信息,给定不同的身份权限(这个身份权限是确定的,权限信息一般存放于数据库)将用户信息提交给后端会得到返回结果叫做身份权限认定(一般是由后端完成,前端也是可以完成的),根据用户的权限进行数据的列表渲染叫做动态路由

动态路由分为那种实现方式

后端+前端

后端返回权限路由表数据,前端只有基础路由表数据

通过全局路由守卫,以及 addroute  完成动态添加路由信息

let hasMenus = false //判断是否添加过路由
router.beforeEach((to, from, next) => {
 	//to: Route: 即将要进入的目标 路由对象

	//from: Route: 当前导航正要离开的路由

	//next: Function: 一定要调用该方法来 resolve 这个钩子。
                        //执行效果依赖 next 方法的调用参数。
	if (hasMenus) {
	//如果有路由,向下执行
   	 next()
  	} else {
  		//如果没有,添加动态路由
    	trendsRouter.forEach(ele => {
      		router.addRoute(ele)
    	});
    	hasMenus = true
    	next({ ...to, replace: true })
  }
})

前端完成(数据、渲染)

(写死路由表一般在一个前端js文件中,身份权限的认定是后端完成的)

前端路由表写死,通过对数据过滤处理得到相应的权限路由表(数据方面)

        前端只需要进行匹配身份信息,通过不同的函数,对已有写死路由表的处理得到需要渲染的权限路由表将其渲染即可。(该步骤也在路由守卫中完成)

前端路由表写死,通过按钮级别的渲染控制,完成动态路由(渲染方面)

        前端进行渲染数据的时候是将数据挂载在页面dom上完成,如果已有数据但是没有dom,是不会进行数据展示的、也就衍生出了该方法。

        对不同身份权限的每个节点进行一个状态信息的存储。(一般我们存在VueX中),依照dom的状态对其节点进行一个渲染与否的判断,即可完成对动态路由按钮级别的控制。

        

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑面饺子皮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值