Otu*_*tus 2 javascript vue.js vue-router vuejs2
我是 Vue.js 新手,遇到了这个问题。
我在 App.vue 中有这段简单的代码
<div v-for="brand in response" v-bind:key="brand.BrandId">
<router-link v-bind:to="{name: 'brand', params: {brandId: brand.BrandId } }">
{{brand.Name}}
</router-link>
</div>
<router-view />
Run Code Online (Sandbox Code Playgroud)
router/index.js 路由数组项如下所示:
{
path: '/brand/:brandId',
name: 'brand',
component: () => import('../views/BrandDetail.vue')
}
Run Code Online (Sandbox Code Playgroud)
我收到了 API 的回复。它是一个有效的对象数组。菜单显示得很好。
我希望路由器视图在单击路由器链接时更新。它确实会更新 URL (#/brand/id),但路由器视图不会更新。
还有其他硬编码的路由器链接。如果我去那里并返回到任何动态添加的路由器链接,它会按预期工作,但如果我单击一个动态路由器链接,然后单击另一个,则路由器视图会卡在第一个链接中。
我还尝试向密钥添加反应式数据源,但这没有帮助。
有人可以向我解释一下这是怎么回事吗?
Dan*_*Dan 10
当您输入已经在的路线时,即使参数不同,组件也不会重新加载,就会发生这种情况。将您的更改router-view
为:
<router-view :key="$route.fullPath" />
Run Code Online (Sandbox Code Playgroud)
Vue 会在可能的情况下尝试重用组件,但在这种情况下这不是您想要的。该key
属性告诉 Vue 对每个唯一键使用组件的不同实例,而不是重复使用一个。由于fullPath
每组参数都是不同的,因此这将产生一个唯一的密钥。
归档时间: |
|
查看次数: |
2759 次 |
最近记录: |