vue路由问题

在模仿猫眼电影路由跳转中怎么实现点击某个电影 跳到对应的详情页当前点击的数据需要传过去图片描述

我通过this.$route.params来进行传递第一次点击可以传递图片描述

但是当刷新详情页之后图片描述

数据传递不过去,有什么办法解决么

阅读 2.9k
5 个回答

使用get请求。

那你就写个判断判断有没有带参数过来 如果没有 不显示详情页 写在路由钩子上
下面是最简单一个 可以参考

 if (to.meta.details) {
    if (!Object.keys(to.params).length) {
      let path = to.path.split("/");
      path.pop();
      path = path.join("/");
      next({ path });
    }
  }

数据不应该从列表页面传到单个详细页面,因为详细页面有大段文字,图片等信息,如果在列表页面就将这些信息从数据库中取出来,大部分数据是不显示的,徒增后端压力。列表只取显示的数据,点击进入单个详细页面,用ajax取后端单个电影的详细数据。

你这个是路由传参的,你刷新的时候都没有路由跳转,当然没有参数传过来了。
你想要刷新也可以方法也很多啊,你可以把数据存在cookie session等都可以。
也可以通过url参数传参。

建议楼主先看下这篇文章 vue 路由数据获取,然后在你的列表渲染的时候,使用 <router-link :to="{ path: 'detail', query: { moveId: 'xxx' }}">xxxx</router-link>

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题