Vuejs 路由器 3.0.1 路径问题
Vuejs router 3.0.1 path issue
我刚遇到一个奇怪的问题,我不确定如何解决它。
这是一些路由配置的示例:
routes: [
{
path: '/signin',
name: 'signin',
component: SignIn
},
{
path: '/message/:messageType',
name: 'message',
component: Message,
props: true
}
]
导航到各种路线完美无缺,但是当我在消息组件上并尝试导航到任何其他路线时,问题就来了。我的 url 看起来像这样:
当我点击登录 link 时,我得到这个路径:
而不是
我使用的是普通路由器-link:
<router-link to="signin">Sign In</router-link>
我知道它在最近的路线上匹配,但这对我来说是个问题。
请参阅命名路由的文档:Vue Router, named routes。我认为您需要这样写 link:
<router-link :to="{ name: 'NAME_OF_ROUTE', params: { userId: 123 }}">User</router-link>
换句话说,我认为你需要给 to
属性一个带有 name
属性.
的对象
根据 Api/router-link 的文档,to
属性是指根目录的相对路径:
The target location is specified with the to
prop. It renders as an
<a>
tag with correct href
by default
因此,如果您想在不传递对象的情况下使用 router-link
元素,我认为您必须使用您设置为 path
的内容,而不是 name
属性:
<router-link to="/signin">Sign In</router-link>
我刚遇到一个奇怪的问题,我不确定如何解决它。 这是一些路由配置的示例:
routes: [
{
path: '/signin',
name: 'signin',
component: SignIn
},
{
path: '/message/:messageType',
name: 'message',
component: Message,
props: true
}
]
导航到各种路线完美无缺,但是当我在消息组件上并尝试导航到任何其他路线时,问题就来了。我的 url 看起来像这样:
当我点击登录 link 时,我得到这个路径:
而不是
我使用的是普通路由器-link:
<router-link to="signin">Sign In</router-link>
我知道它在最近的路线上匹配,但这对我来说是个问题。
请参阅命名路由的文档:Vue Router, named routes。我认为您需要这样写 link:
<router-link :to="{ name: 'NAME_OF_ROUTE', params: { userId: 123 }}">User</router-link>
换句话说,我认为你需要给 to
属性一个带有 name
属性.
根据 Api/router-link 的文档,to
属性是指根目录的相对路径:
The target location is specified with the
to
prop. It renders as an<a>
tag with correcthref
by default
因此,如果您想在不传递对象的情况下使用 router-link
元素,我认为您必须使用您设置为 path
的内容,而不是 name
属性:
<router-link to="/signin">Sign In</router-link>