路由跳转的两种方式分别是什么?
分别是:声明式导航和编程式导航两种
一 什么是声明式导航?声明式导航怎么使用,什么时候使用?以及如何传参
声明式导航即写在router link中通过to进行跳转的路由跳转方式
例:<router-link to="/about">about</router-link>
使用:通过to属性提供的跳转路径进行跳转(类似于a标签的href属性)
什么时候使用:不需要逻辑跳转的时候使用(逻辑跳转就是需要用js代码来实现跳转)
传参:
在to属性中传值,方法如下:
方式一:to='/path?参数名=值'
例:<router-link to="/about?id=123">about</router-link>
方式二(动态路由):to='/about/123'(需要在路由规则中配置:/path/:参数名)
例:<router-link to="/about/123">about</router-link>
配置:path:'/about/:id'
获取参数:this.$route.params.参数名
二 什么是编程式导航?编程式导航怎么使用,什么时候使用?以及如何传参
编程式导航即需要用逻辑跳转路由的方式
使用:在标签中加入事件用事件进行跳转
例:<button @click='btn'></button>
btn(){
this.$router.push(跳转的路径)
}
什么时候使用:需要逻辑跳转路由的时候使用
传参:
具体方式:
this.$router.push({
path:'路由配置',
query:{name:值}
})
接收参数的方式和声明式导航一致;
三 两种方式的区别
使用的地方不同一个在标签内一个需要事件触发才能跳转
编程式需要业务逻辑声明式不需要业务逻辑
四 跳转方式中path和name的区别
相同点:
都可以实现页面的切换
都需要在路由中提前配置好
编程式和声明式都可以使用
不同点:
path的值在很多场景是会变,例:动态路由 /path/:id
name的值,不允许变化前缀不需要带/,只要一个名字
使用path跳转路由时,path会忽略params(参数为undefined)
所以path不能结合params使用
推荐name跳转query和params都可以使用(视数据的作用而定)
以上是本节内容想了解更多可点以下链接查看
https://blog.csdn.net/m0_60970928?spm=1011.2415.3001.5343