<!-- 路由跳转的方式,有两种:
1.声明式导航
router-link 是vue-router提供的一个全局组件
router-link 实际上最终会渲染成一个a标签,to属性等价于 href属性(to不需要#)
router-link 提供了声明式导航高亮的功能(自带类名)
传参
在router-link上的to属性2,方法如下:
(方式1)
传递参数
to=/path?参数名=值
列:<router-link to="about?name=小明"></router-link>
//获取路由参数:
this.$route.query.参数名
列:this.$route.query.name
(方式二 ---动态路由)
传参
to='/path/值'(需要在路由规则里配置,/path/:参数名)
列:to='/path/王娆'
配置:path:"/about/:username"
获取参数
this.$route.params.参数名
列:this.$router.params.username
2.编程式导航
用js代码来进行跳转的
$router和$route的区别?
$router:是路由的操作对象(比喻成路由器,装着所有的路由) 跳转时候用
$route: 是路由的信息对象(比喻成一个路由,存储着当前路由中的所有信息) 获取路由参数时候用
跳转的具体方式: 语法:path或者name任选一个
this.$router.push(
{
name:路由配置的名字,query:{name:'值'}
}
);
接收参数:在对应的页面
let name_nex=this.$route.query.name;
3.区别(重点!!!)
跳转方式的区别:
1.path和name的相同点:都可以实现页面切换(路由跳转)
都需要在路由中提前配置好
声明式和编程式导航都可以使用
不同点:path的值是会变的,列如:动态路由/path/:username
name的值是不会变得,并且前缀不需要带/,只是一个名字(字符串)
*** 使用path跳转路由时,path会忽略params(参数为undefined),所以path和params是不能一起使用
推荐使用name和query的方式来实现路由跳转
2.query和params的相同点:都是路由传参数的方式; 声明式导航中和编程式导航中都可以使用
不同点:query相当于get请求,编写方便。但是页面跳转的时候呢参数显示在地址栏,存在安全隐患
params:相当于post请求,需要配置动态路由(详情请参考上面),参数不会显示在地址栏中,相对安全;
-->
路由跳转----声明式导航、编程式导航
最新推荐文章于 2024-05-30 15:07:12 发布