吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1367|回复: 6
收起左侧

[已解决] Vue 重定向传入多个参数后不能正确跳转页面

[复制链接]
ing 发表于 2020-7-4 09:57
本帖最后由 ing 于 2020-7-5 20:00 编辑

我向路径 /dynamic-redirect 传入多个参数
捕获f1.PNG
捕获code.PNG


预计会跳到 /foo 的页面,可实际没有,而是进入了 if (params.id) 的结果
捕获f2.PNG
可如果我分别尝试这2个参数却可以达到预计效果,这是为什么,为什么我不能传入多个参数??
单独传入hash
捕获f3.PNG
成功跳转到 baz
捕获f4.PNG

单独传入 query
捕获f5.PNG
成功跳转到 /foo
捕获f6.PNG

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

cube 发表于 2020-7-5 14:41
本帖最后由 cube 于 2020-7-5 14:56 编辑

如"linguo2625469"所说,你地址构造的有问题.
应该以这样的格式.
http://host/#/dynamic-redirect/to?hash=null&to=foo

但问题是,你要用hash与query并存.所以要控制顺序.
http://host/#/dynamic-redirect/to?to=foo&hash=null

并且需要重新理解一下,url是由什么构成的.
<scheme>://<host>:<port>/<path>?<query>

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
ing + 1 + 1 谢谢@Thanks!

查看全部评分

 楼主| ing 发表于 2020-7-4 09:58
本帖最后由 ing 于 2020-7-5 20:00 编辑

[Asm] 纯文本查看 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://unpkg.com/vue/dist/vue.js"></script>
    <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
    <style>

    </style>
</head>
<body>
    <div id="app">
    </div>

    <script>
        const Home = { template: '<router-view></router-view>' };
        const Foo = { template: '<div>foo</div>' };
        const Baz = { template: '<div>baz</div>' };
        const WithParams = { template: '<div>{{ $route.params.id }}</div>' };

        const router = new VueRouter({
            routes: [
                {
                    path: '/', component: Home,
                    children:[
                        { path: 'foo', component: Foo },
                        { path: 'baz', name: 'baz', component: Baz },
                        { path: 'with-params/:id', component: WithParams }
                    ]
                },
                // dynamic redirect, note that the target route `to` is available for the redirect function
                { path: '/dynamic-redirect/:id?',
                    redirect: to => {
                        const { hash, query, params } = to;
                        if (hash === '#baz') {
                            return { name: 'baz', hash: '' }
                        }
                        if (query.to === 'foo') {
                            return { path: '/foo', query: null }
                        }
                        if (params.id) {
                            return '/with-params/:id'
                        } else {
                            return '/bar'
                        }
                    }
                }
            ]
        });

        new Vue({
            router,
            template: '<router-view></router-view>'
        }).$mount('#app')
    </script>
</body>
</html>
jerry828 发表于 2020-7-4 11:13
学习学习!!

免费评分

参与人数 1吾爱币 -1 收起 理由
ing -1 此为违规行为,请遵守论坛版规!

查看全部评分

zhetoo 发表于 2020-7-4 11:38
你这什么跟什么啊 。。。
const { hash, query, params } = to; 这个是ES6的解构吧
hash, query, params 应该是三个不同的路由属性吧
hash /dynamic-redirect/#baz
params /dynamic-redirect/xxx
query /dynamic-redirect/xxx?to=foo
应该是这样吧
linguo2625469 发表于 2020-7-4 11:43
首先 参数不要带#号 会被路由识别为路由url
其次 ?后数据只能键值对形式 你?键1=值1&键2?键3=值2  这样参数无法解析的

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
ing + 1 + 1 谢谢@Thanks!

查看全部评分

linguo2625469 发表于 2020-7-4 11:44
你的query.to 是获取不到的 想获取到需要换写法
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-30 02:10

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表