Vue 中的参数前缀.js路由路径



tl;dr:

在 Vue.js vue-router 中,我们如何使一条路线param立即遵循非/字符并且仍然被解析?

--

解释

我希望一些网址看起来像:

example.com/_myuser
example.com/_otheruser

在 Flask 中,可以通过以下方式完成此操作:

@app.route('/_<username>')
def user_page(username):
    pass
print(url_for('user_page', username='myuser'))
# example.com/_myuser

但是我找不到一种方法来使这项工作在vue-router.当我尝试时:

router.map({
    '/_:username': {
        name: 'user-page',
        component: User
    }
})

username参数根本无法解析(在模板中也不会解析,在浏览器的地址栏中键入时也不会解析):

<a v-link="{ name: 'user-page', params: { username: 'myUser' } }">Hello</a>
expected      <a href="/_myUser">Hello</a>
result        <a href="/_:username">Hello</a>

在 vue 1.* 中这是不可能的,但在 2.0 中,这可以通过使用 /(@):username 来完成。

更新:我所要求的今天在vue-router是不可能的。

有关相关的 GitHub 问题以及实现此功能的可能方法,请参阅 https://github.com/vuejs/vue-router/issues/499。

最新更新