一、页面跳转方式

  1. 在页面中有两种跳转方式,第一种跳转方式是
    使用 a 标签的形式进行跳转,也称之为标签跳转。第二种跳转方式是使用 window.location.href 的形式进行跳转,也称之为编程式跳转。
  2. vue页面中,实现列表页跳转到详情页,也就有两种方式。第一种是标签式跳转,通过router-link的形式进行跳转。第二种是编程式跳转,通过 this.$router.push的形式进行跳转。
  3. this.$routethis.$router 的区别:
  • this.$route 是路由参数对象,所有路由中的参数, params, query 都属于它
  • this.router 是一个路由导航对象,用它可以方便的 使用 JS 代码,实现路由的前进、后退、跳转到新的 URL 地址

二、标签式跳转

  1. vue 的列表页中,用 router-link 进行包裹起来,to 是跳转的路由,通过拼接详情页的 id 值就可以,代码如下所示:
<router-link :to="'/home/goodsInfo'+item.id" tag="div" class="goods-item" v-for="item in goodsList" :key="item.id"><img :src="item.img_url" alt=""><h1 class="title">{{ item.title }}</h1><div class="info"><p class="price"><span class="now">¥{{ item.sell_price }}</span><span class="old">¥{{ item.market_price }}</span></p><p class="sell"><span>热卖中</span><span>剩{{ item.stock_quantity }}件</span></p></div>
</router-link>
  1. router.js 文件中,在 path 路径中,拼接跳转的详情页 id 值,也是使用了路由懒加载,代码如下所示:
{path: '/home/goodsInfo/:id',name: 'GoodsInfo',component: () => import('./components/goods/GoodsInfo.vue')
}
  1. 在详情页中,在 data 中,定义 id 值,id 的值为 this.$route.params.id,这个也是从列表页到详情页中获取到的对应的 id 值,将路由参数中的对象挂载到 id 上。定义 goodsInfo,默认为空对象,保存商品的信息数据,代码如下所示:
data() {return {id: this.$route.params.id, goodsInfo: {},}
}
  1. 在详情页中,在 created 生命周期钩子函数中,调用 getGoodsInfo() 方法,获取到商品的详情数据,代码如下所示:
created () {this.getGoodsInfo()
}
  1. 在详情页中,在 methods 中,定义 getGoodsInfo 方法,获取商品的信息,调用相应的接口,拼接详情id,获取详情页的数据,并且将数据保存到 goodsInfo 中,代码如下所示:
    getGoodsInfo() {this.$http.get('api/goods/getinfo/' + this.id).then((res) => {if (res.data.status === 0) {this.goodsInfo = res.data.message[0]}})}
  1. 在详情页中,渲染详情页的数据到页面上,代码如下所示:
<!-- 商品参数区域 -->
<div class="mui-card"><div class="mui-card-header">商品参数</div><div class="mui-card-content"><div class="mui-card-content-inner"><p>商品货号:{{ goodsInfo.goods_no }}</p><p>库存情况:{{ goodsInfo.stock_quantity }}</p><p>上架时间:{{ goodsInfo.add_time | dateFormat}}</p></div></div><div class="mui-card-footer"><mt-button type="primary" size="large" plain @click="goDesc(id)">图文介绍</mt-button><mt-button type="danger" size="large" plain @click="goComment(id)">商品评论</mt-button></div>
</div>

三、编程式跳转

  1. vue 的列表页中,绑定一个 click 点击事件 goDetail(item.id),携带参数 id,代码如下所示:
<div @click="goDetail(item.id)" class="goods-item" v-for="item in goodsList" :key="item.id"><img :src="item.img_url" alt=""><h1 class="title">{{ item.title }}</h1><div class="info"><p class="price"><span class="now">¥{{ item.sell_price }}</span><span class="old">¥{{ item.market_price }}</span></p><p class="sell"><span>热卖中</span><span>剩{{ item.stock_quantity }}件</span></p></div>
</div>
  1. router.js 文件中,在 path 路径中,拼接跳转的详情页 id 值,也是使用了路由懒加载,同时,必须指明 name 的值,会用到命名路由,代码如下所示:
{path: '/home/goodsInfo/:id',name: 'GoodsInfo',component: () => import('./components/goods/GoodsInfo.vue')
}
  1. 在列表页中,在 methods 中,定义 goDetail 这个方法,传入 id 值,通过 this.$router.push 进行路由导航跳转,name 的值就是跳转路由的 name 的值,也是之前在 router.js 中定义的命名路由,传递命令路由,params 就是传递的 id 值,代码如下所示:
    // 点击后进入详情页goDetail (id) {this.$router.push({name: 'GoodsInfo', params: { id }})}
  1. 在详情页中,在 data 中,定义 id 值,id 的值为 this.$route.params.id,这个也是从列表页到详情页中获取到的对应的 id 值,将路由参数中的对象挂载到 id 上。定义 goodsInfo,默认为空对象,保存商品的信息数据,代码如下所示:
data() {return {id: this.$route.params.id, goodsInfo: {},}
}
  1. 在详情页中,在 created 生命周期钩子函数中,调用 getGoodsInfo() 方法,获取到商品的详情数据,代码如下所示:
created () {this.getGoodsInfo()
}
  1. 在详情页中,在 methods 中,定义 getGoodsInfo 方法,获取商品的信息,调用相应的接口,拼接详情id,获取详情页的数据,并且将数据保存到 goodsInfo 中,代码如下所示:
    getGoodsInfo() {this.$http.get('api/goods/getinfo/' + this.id).then((res) => {if (res.data.status === 0) {this.goodsInfo = res.data.message[0]}})}
  1. 在详情页中,渲染详情页的数据到页面上,代码如下所示:
<!-- 商品参数区域 -->
<div class="mui-card"><div class="mui-card-header">商品参数</div><div class="mui-card-content"><div class="mui-card-content-inner"><p>商品货号:{{ goodsInfo.goods_no }}</p><p>库存情况:{{ goodsInfo.stock_quantity }}</p><p>上架时间:{{ goodsInfo.add_time | dateFormat}}</p></div></div><div class="mui-card-footer"><mt-button type="primary" size="large" plain @click="goDesc(id)">图文介绍</mt-button><mt-button type="danger" size="large" plain @click="goComment(id)">商品评论</mt-button></div>
</div>

vue中如何实现列表的详情页获取及渲染相关推荐

  1. 爬取电影天堂电影列表和详情页

    爬取电影天堂电影列表和详情页 import requests from lxml import etreebase_list_url = 'https://www.dytt8.net'headers ...

  2. 微信小程序 新闻列表及详情页

    微信小程序 新闻列表及详情页 页面效果 新闻列表 <view class="conatiner"><view class="news-item" ...

  3. vue列表进入详情页实现上一篇下一篇功能

    一.案例简介 开发中有一个数据列表,每一行可以点击查看对应的详情页面.但是每次点击进入详情页面之后想要看下一条数据的详情需要关掉当前页面重新打开下一条,使用人员觉得比较麻烦,所以要求在详情页加上(上一 ...

  4. 微信公众号点击列表进入详情页

    问题:微信公众号点击记录进入详情的时候,如果详情页代码是在当前页面,那么就没有进入页面记录,在点击返回的时候,会直接返回到最开始的地方,而非列表页. 解决:这时候就需要在点击列表的时候,插入一条记录, ...

  5. Activity 切换动画(小米图库列表进入详情页,图片从固定位置放大进入,缩小退出)

    直接上效果图 ok,来分析下如何实现的吧 分析原理 首先确定,这是两个不同的 Activity,从图片列表页跳入到图片详情页:先来看进入详情页时的动画,从列表中所在 item 的位置一直放大到详情页的 ...

  6. Django----将后端数据展示在前端页面(展示用户列表及详情页)

    需求描述: 如下图,将后台数据库中的用户列表数据展示出来,点击某用户后,进入信息详情页面 解决方案: 涉及知识点:模板语言 django除了可以渲染html语言,还支持模板语言: {% for use ...

  7. Uni-app 课程详情页 获取课程详情 + 收藏 + 加入购物车

    class-detail.vue > <template><view class="class-detail"><!-- 导航 -->&l ...

  8. 如何从详情页获取淘宝/天猫商品的分类?

    熟悉淘宝/天猫的人应该都知道,在商品的详情页是没有显示商品的所属分类的.而"商品分类"对我们的数据分析又是一个很重要的参数,那如何获取这个信息呢? 通过分析发现有两种方法,下面一一 ...

  9. vue中使用echarts实现动态数据绑定、获取后端接口数据

    之前几篇echarts的文章是实现了静态的柱状图.折线图.饼状图.地图,在项目中我们肯定是需要获取后端接口,将后端返回的数据显示在图表上,所以这次就记录一下如何实现echarts的动态数据绑定. 简单 ...

最新文章

  1. Linux 内核安全模块学习总结
  2. VMware Workstation 运行出现“由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题”解决方案
  3. 没有bug队——加贝——Python 练习实例 27,28
  4. ha 配置ssl_HAPROXY 安装SSL证书指南
  5. caffe提取每一层中的特征,在matlab或python查看
  6. 计算机可以调剂其他专业吗,机械能跨专业调剂计算机吗
  7. ajax $.get怎么使用,jquery之ajax之$.get方法的使用
  8. gmail更改个人信息_如何在不创建新电子邮件地址的情况下更改Gmail名称
  9. VS2008SP1的MFC测试-(OFFICE2007风格)Ribbon风格(DJ尐舞图形画板2008)
  10. Local Linear Model, Semi Local Linear Model and Local Level Model of TFP.STS
  11. IKEv2协议报文分片处理
  12. 仿知乎客户端的白天黑夜主题切换
  13. MPChart饼图自定义图例
  14. ssm+java计算机毕业设计公交路线查询系统l1auz(程序+lw+源码+远程部署)
  15. HTML Table之展开收起
  16. 计算机专业博士毕业月薪多少一般,博士毕业月薪多少一般 好找工作吗
  17. 三重邪骨手机版怎么登录服务器未响应,三重邪骨困难版
  18. redis源码分析 -- cs结构之服务器
  19. 织梦(DedeCMS)通用免登陆发布插件
  20. python量化策略源码_[Python源码] 十大经典日内策略之空中花园(附源码分享)

热门文章

  1. 狐友老欧头疼了一天,VFP转换成JSON格式总不对,竟是乱码惹的祸
  2. markman的下载与使用
  3. 毕业设计 基于stm32的灯光控制系统 物联网
  4. 四川金弘同创:拼多多产品要怎么上新
  5. 一个人运营公众号,像是一场马拉松
  6. PAT 1015 德才论(C语言)
  7. GMS认证环境搭建-终极篇
  8. [ML] Genetic Algorithm 理论概述
  9. 苹果系统微信实况图照片发送-竞品分析初步思考
  10. 利用spring的jdbcTemplate处理blob、clob