赞
踩
- params传参只能通过 name 引入路由,如果写成path:‘/xxx’,获取的参数是 undefined,获取方式:route.params
- query传参name和path二者都可正常获取, 获取方式route.query
- params相当于post请求,参数不会显示在地址栏; query相当于get传参,可以在地址栏看到参数
- 路由跳转时推荐使用name的方式,因为路径可能会变,但名字一般是由具体含义的,一般不会变,写起来也简单一些
强调: ⚠️:使用params传参必须通过name引入,不能通过path引入
- // 使用params传参,使用name
- router.push({
- name: 'Login',
- params: {
- id: '2022-10-13'
- }
- })
- // 获取参数
- let id = route.params.id
- // 使用query传参,通过name和path都能获取
- router.push({
- path: '/Home',
- query: {
- name: '我是通过url传递参数的'
- }
- })
- // 获取参数
- let name = route.query.name
router.push 只能当前窗口打开
router.resolve 结合 window.open 可以新窗口打开
router.push 支持query和params
router.resolve 只支持query,若需地址栏参数不可见,需结合localStorage/sessionStorage或第三方插件保存
示例
router.push
- // 地址栏里带参
- router.push({
- path: '这里是path',
- query: {
- a: 1,
- },
- });
-
- // 地址栏里不带参
- router.push({
- name: '这里是name',
- params: {
- a: 1,
- },
- });
router.resolve
- // 地址栏里带参
- let data = router.resolve({
- path: "/channel",// 或者 name: 'channel',
- query: {
- a: 1,
- },
- });
- window.open(data.href, '_blank');
-
- // 地址栏里不带参
- let data = router.resolve({
- name: 'channel',
- });
- localStorage.setItem('a', 1);
- // 然后跳转页接收 localStorage.getItem('a');
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。