{ path: ‘/b’, component: ComponentB }
// 动态路由
{ path: ‘/user/:id’, component: User }
// 命名路由
{ path: ‘/user/:id’, name: user, component: User }
];
const router = new VueRouter({
routes // (缩写)相当于 routes: routes
})
通过 router 配置参数注入路由。
var app = new Vue({
el: ‘#app’,
router: router,
…
})
通过注入路由器,我们可以在任何组件内通过 this. r o u t e r 访问路由器,也可以通过 t h i s . router 访问路由器,也可以通过 this. router访问路由器,也可以通过this.route 访问当前路由。
router-link
通过router-link组件,我们可以进行路由的跳转。to属性的写法很多,请参考router-link。
Component B
Component C
编程式路由
router.push(location, onComplete?, onAbort?)
该方法的参数location可以是一个字符串路径,或者一个描述地址的对象。用法如下:
router.push(‘b’);
router.push({path: ‘b’})
router.push({path: ‘user/1’})
router.push({name: ‘user’, params: {id: 1}})
router.replace(location, onComplete?, onAbort?)
跟 router.push 很像,唯一的不同就是,它不会向 history 添加新记录,而是跟它的方法名一样 —— 替换掉当前的 history 记录。
router.replace(…)
ps:你也可以在router-link使用replace。
router.go(n)
类似 window.history.go(n)。是history回退和前进的操作。
了解了上述几个点后,你基本上可以完成基本的路由功能了。
一个组件内部也可以有路由视图router-view。
FatherComponent Content
于此同时需要在路由定义处添加children属性。也是类似嵌套的写法。
{
path: ‘/father’,
component: FatherComponent,
children: [
{ path: ‘child’, component: ChildComponent }
]
}
当我们的布局是由几部分组成时,并且我们希望每一部分都有自己的路由,那么此时就不是嵌套路由了,而是多路由视图,这个时候我们就需要用到命名视图了。
而在定义路由的时候也要对应好。
const router = new VueRouter({
routes: [
{
path: ‘/’,
components: {
default: Foo,
a: Bar,
b: Baz
}
}
]
})
很多时候我们可能需要监测路由变化,那么需要在watch中监测’ r o u t e ’,方法大体是’ route’,方法大体是’ route’,方法大体是’route’ (to, from) {your code}
watch: {
‘$route’: function (to, from) {
this.fromRoute = from.path;
this.toRoute = to.path;
// 可以根据情况做一些后续的逻辑处理
…
}
}
重定向的意思就是本来是要跳路由A的,但是定向到B。写法如下:
routes: [
{ path: ‘/b’, component: ComponentB },
// redirect为path的形式
{ path: ‘/a’, redirect: ‘/b’ },
// redirect为name的形式
{ path: ‘/a’, redirect: { name: ‘compB’} },
// 甚至是一个方法,动态返回重定向目标,这样我感觉都可以做路由守卫了。
{ path: ‘/a’, redirect: to => {
// 方法接收 目标路由 作为参数
// return 重定向的 字符串路径/路径对象
}}
]
routes: [
{ path: ‘/a’, component: A, alias: ‘/b’ }
]
alias的意思是别名,通俗讲,你大名是张三,别人叫你阿三,你也答应了,阿三就是你的别名。反映到路由上就是说,b是a的别名,那我输入路由b,地址栏会显示b,但也会映射到A组件;如果输入a,那地址栏就还是a,组件也是A,没什么变化。
在组件中使用 $route 会使之与其对应路由形成高度耦合,我们可以使用props的形式来重新定义。这样id就会作为一个prop属性,用来接收传递的数据。
// 路由定义
routes: [
{ name:‘employee’, path: ‘/employee/:id’, component: Employee, props: true}
]
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
最后
整理面试题,不是让大家去只刷面试题,而是熟悉目前实际面试中常见的考察方式和知识点,做到心中有数,也可以用来自查及完善知识体系。
《前端基础面试题》,《前端校招面试题精编解析大全》,《前端面试题宝典》,《前端面试题:常用算法》PDF完整版点击这里免费领取
,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
[外链图片转存中…(img-HkXwhZno-1713568972694)]
最后
整理面试题,不是让大家去只刷面试题,而是熟悉目前实际面试中常见的考察方式和知识点,做到心中有数,也可以用来自查及完善知识体系。
《前端基础面试题》,《前端校招面试题精编解析大全》,《前端面试题宝典》,《前端面试题:常用算法》PDF完整版点击这里免费领取
[外链图片转存中…(img-9k9C7g1g-1713568972694)]
[外链图片转存中…(img-FolZhfAK-1713568972695)]
[外链图片转存中…(img-k3jLwjEK-1713568972695)]