vue.js - Vuejs Vue Router 动态 url 无法正常工作
问题描述
我有一个带有 Vue 路由器实现的 vuejs 应用程序,我的动态 URL 在第一次渲染后没有渲染获取的数据。我有一个搜索栏来搜索用户,在家里(https://reboundtribe.com)页面上,当点击用户时,搜索会返回用户,它会转到用户个人资料,但用户个人资料页面上的任何搜索都不会呈现如果单击用户,则用户详细信息
访问 http://reboundtribe.com (benjaminchukwudi0@gmail.com, 123456) -- 登录并搜索“Ben”,然后单击任何用户进入用户个人资料页面,在用户个人资料页面上单击任何其他用户,然后结果不会改变
我已将 ids 和用户名用作params
,但同样的问题,当页面刷新时,它会呈现用户数据
路由器代码
{
path: '/:username/profile',
component: Profile,
meta: {
requiresAuth: true
}
},
个人资料页面
beforeRouteEnter (to, from, next) {
axios.get(`/auth/user/${to.params.username}/profile`)
.then(response => {
next(vm => (vm.user = response.data));
})
},
假设呈现用户详细信息。请指导我。
谢谢
解决方案
问题是路线没有改变(只有参数改变)并且beforeRouteEnter
没有触发钩子。
Github 上也有讨论这个问题:https ://github.com/vuejs/vue-router/issues/1350#issuecomment-295367452
beforeRouterEnter
如果用户名更改(保持钩子),您可以尝试为参数添加观察者以获取数据
watch: {
'$route.params.username': function (username) {
axios.get(`/auth/user/${username}/profile`).then(response => {
this.user = response.data;
})
}
},
推荐阅读
- flutter - 如何在飞镖中复制数组元素
- r - 如何减小ggplot图形的大小?情节线太多,因此权重太大
- vb.net - 在线 Microsoft Docs Visual Basic.Net
- css - React中的访问按钮原色
- javascript - 发送表单刷新页面而不发布到 MongoDb 数据库
- angular - Spring Boot Angular 构建顺序
- java - 如何允许用户使用不同的参数运行 Docker 应用程序
- symfony - Symfony Mailer 配置 sendmail 参数
- c# - 遍历类的属性并创建一个简单的对象合并信息
- c - 不使用全局列表时 C 列表的分段错误