Chr*_*ius 5 vue.js vue-router vuejs2
根据官方文档
有时,使用名称标识路线会更方便,尤其是在链接到路线或执行导航时。
那么,如何才能更方便呢?
<router-link :to="{ name: 'user', params: { id: user.id }}">
{{ user.name }}
</router-link>
Run Code Online (Sandbox Code Playgroud)
对比
<router-link :to="'/user/' + user.id">
{{ User.name }}
</router-link>
Run Code Online (Sandbox Code Playgroud)
我觉得我错过了一些明显的东西。
我总是使用命名路由。
优点是可以改变路由的路径,而无需在每次<router-link>或this.$router.push()调用中改变路径。
这有点像在编程中我们避免使用魔法值而是使用命名常量的原因——我们可以在一个地方更改值,而无需在代码中查找并替换所有出现的值。
如果不使用命名路由,您的代码将与每个路由的路径紧密绑定,您无法更改一个而不需要更改另一个。命名路由使我们的代码独立于路由路径——无论路由的路径最终是什么,它都会工作。
另一个优点是我们可以利用嵌套路由的 param/query 继承——我们不需要重建完整路径,而是我们可以只传递子路由的名称,Vue 将使用任何现有的参数构建完整路径。
假设我们有以下路线:
{
name: 'user',
path: '/user/:id',
children: [
{
name: 'profile',
path: 'profile'
}
]
}
Run Code Online (Sandbox Code Playgroud)
并且当前的路由路径是/user/1。要转到个人资料页面,我们需要执行以下任一操作:
this.$router.push({ name: 'profile' })
Run Code Online (Sandbox Code Playgroud)
或者
this.$router.push('/user/' + this.$route.params.id + '/profile')
Run Code Online (Sandbox Code Playgroud)
前者更简单,更不容易出错。
| 归档时间: |
|
| 查看次数: |
459 次 |
| 最近记录: |