收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
})
//假设通过接口从后台获取的用户角色,可以存储在token中
const role = ‘user’
myRouter.beforeEach((to,from,next)=>{
if(to.meta.roles.includes(role)){
next() //放行
}else{
next({path:“/404”}) //跳到404页面
}
})
###### 示例二:在需要加权限的meta中加标识
const myRouter = new VueRouter({
routes: [{
path: ‘/login’,
name: ‘login’,
meta: {
title: ‘登录页’
icon: ‘login’
},
component: () => import(‘@/components/Login’)
},{
path: ‘/home’,
name: ‘home’,
meta: {
title: ‘首页’
icon: ‘home’,
requireAuth: true
},
component: () => import(‘@/views/Home’)
},{
path: ‘/404’,
component: () => import(‘@/components/404’)
}]
})
myRouter.beforeEach((to,from,next)=>{
let flag = to.matched.some(record=>record.meta.requireAuth);
//这里使用matched循环查找不直接使用to.meta的原因:
//当存在子路由的情况时,首先明确按正常点击逻辑来说是先走一级路由再进二级路由的,对于权限的判断也必然是这样
//to.meta => 会直接搜索子路由的meta,如果一级路由没有添加requireAuth:true, 则在一级路由页面也本就应该被拦截无法进入二级路由页面了;如果用户直接篡改url地址栏的话,则可以进入二级页面,权限可能会出现问题。则应该给该权限下面的路由都添加标记
//to.matched => matched是一个路由数组,会将所有路由包括子路由的属性集合起来,所以通过循环判断查找的方式,只需要给一级路由添加权限标识即可权限他下面的其他子路由。
if(flag){
next()
}else{
next({path:“/404”})
}
})
**缺点:** 每次路由跳转都要做一遍校验是对计算资源的浪费,另外对于用户无权访问的路由,理论上就不应该挂载。
### 方式二:动态生成路由表(addRoutes)
根据用户权限或者是用户属性去动态的添加菜单和路由表,可以实现对用户的功能进行定制。
`vue-router` 提供了 `addRoutes()` 方法,可以动态注册路由,需要注意的是,动态添加路由是在路由表中 `push` 路由,由于路由是按顺序匹配的,因此需要将诸如404页面这样的路由放在动态添加的最后。
// store.js
// 将需要动态注册的路由提取到vuex中
const dynamicRoutes = [
{
path: ‘/manage’,
name: ‘Manage’,
meta: {
requireAuth: true
},
component: () => import(‘./views/Manage’)
},
{
path: ‘/userCenter’,
name: ‘UserCenter’,
meta: {
requireAuth: true
},
component: () => import(‘./views/UserCenter’)
}
]
在 `vuex` 中添加 `userRoutes` 数组用于存储用户的定制菜单。在 `setUserInfo` 中根据后端返回的菜单生成用户的路由表。
// store.js
setUserInfo (state, userInfo) {
state.userInfo = userInfo
state.auth = true // 获取到用户信息的同时将auth标记为true,当然也可以直接判断userInfo
// 生成用户路由表
state.userRoutes = dynamicRoutes.filter(route => {
return userInfo.menus.some(menu => menu.name === route.name)
})
router.addRoutes(state.userRoutes) // 注册路由
}
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**