gpt4 book ai didi

vue.js - 动态路由器链接将 *slash* 更改为 %2F

转载 作者:行者123 更新时间:2023-12-05 07:21:32 24 4
gpt4 key购买 nike

我对动态路由器链接没有什么问题。我从 API 获得了对象(页面)数组,其中之一是我的 home :

{
name:"dynamic"
parent_id:0
partners:null
slug:"/"
}

然后使用 v-for我要创建 router-link像这样:

<div v-for="page in pages">
<router-link
:to="{ name: page.name, params: { slug: page.slug }}"
class="v-list__link"
>
</div>

问题是当我将此链接呈现到 home 时不是 <a href="/">如我所料,但它带有编码引用:%2F => <a href="%2F">

router.js

export default new Router({
scrollBehavior (to, from) {
return { x: 0, y: 0 }
},
mode: 'history',
routes: [
{
path: '/:slug',
name: 'dynamic',
component: Dynamic
},
{
path: '/',
name: 'dynamic',
component: Dynamic
},
{
path: '/contact',
name: 'contact',
component: Contact
}
]
})

有谁知道怎么解决吗?

最佳答案

路由的路径是/:slug。当使用等于 /slug 解析时,您将得到 // 作为最终路径,除了它将解析为 /%2F 因为参数将使用 encodeURIComponent 编码.

从 slug 参数中删除前导斜杠:

page.slug.replace(/^\//, '')

您还有两条同名的路线,这是不允许的。第二个 dynamic 路由无法按名称解析。

关于vue.js - 动态路由器链接将 *slash* 更改为 %2F,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56852432/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com