Vue模拟数据,实现路由进入商品详情页面的示例


Posted in Javascript onAugust 31, 2018

一、路由

首先需要配置路由,就是点击good组件进入goodDetail组件

配置路由如下

{
  path: '/goodDetail',
  component:goodDetail
 }

同时在good组件中写入如下点击事件,路由中加入查询参数,也就是商品的id

//点击路由到商品详细信息页
  selectGood(){
  router.push({
   path: 'goodDetail',
   query:{goodId:this.goodDetail.id}})
  }

二、在goodDetail组件中接收路由参数

goodDetail中的代码如下

export default{
 data(){
  return {
  id: this.$route.query.goodId,
  loading: false,
  selectedGood: []
  }
 },

 created(){
  this.fetchData();
 },

 methods:{
  fetchData(){
  this.loading = true;

  //拿到查询字段,商品的id后进行http请求
  var id = this.id;
  this.$http.get('/api/goods/' + id)
   .then(response => {
   this.selectedGood = response.data.data;
   }, error => {
   console.log(error);
   })

  this.loading = false;
  }
 }
 }

可以看到我这里接收到路由参数的中的商品id后,发送了一个http请求,这时就需要本地mock数据

三、本地模拟数据

首先需要有一个data.json用来存放模拟的数据,然后配置build目录下的dev-server.js如下

//获取mock数据
var appData = require('../data.json');
var goods = appData.goods;

var apiRoutes = express.Router();

apiRoutes.get('/goods', function (req, res) {
 res.json({
 errno: 0,
 data: goods
 });
})

//拿到指定id的商品信息
apiRoutes.get('/goods/:id', function(req, res) {
 var id = req.params.id;
 function selectedGood(id){
 for(var i = 0; i < goods.length; i++) {
  if(goods[i].id == id){
  return goods[i];
  }
 }
 }
 var good = selectedGood(id);
 res.json({
 errno: 0,
 // data: goods[req.params.id]
 data: good
 });
})

app.use('/api', apiRoutes);

以上这篇Vue模拟数据,实现路由进入商品详情页面的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
List Information About the Binary Files Used by an Application
Jun 11 Javascript
Jquery注册事件实现方法
May 18 Javascript
jquery简单实现带渐显效果的选项卡菜单代码
Sep 01 Javascript
javascirpt实现2个iframe之间传值的方法
Jun 30 Javascript
js指定步长实现单方向匀速运动
Jul 17 Javascript
基于Node.js模板引擎教程-jade速学与实战1
Sep 17 Javascript
JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍
Mar 01 Javascript
基于jQuery ztree实现表格风格的树状结构
Aug 31 jQuery
小程序云开发实战小结
Oct 25 Javascript
VueCli4项目配置反向代理proxy的方法步骤
May 17 Javascript
Nuxt.js nuxt-link与router-link的区别说明
Nov 06 Javascript
JS实现简单九宫格抽奖
Jun 28 Javascript
JS实现百度网盘任意文件强制下载功能
Aug 31 #Javascript
angular1.x ui-route传参的三种写法小结
Aug 31 #Javascript
angularJs中跳转到指定的锚点实例($anchorScroll)
Aug 31 #Javascript
Angular 利用路由跳转到指定页面的指定位置方法
Aug 31 #Javascript
Vue 莹石摄像头直播视频实例代码
Aug 31 #Javascript
JavaScript实现简单的隐藏式侧边栏功能示例
Aug 31 #Javascript
Vue加载组件、动态加载组件的几种方式
Aug 31 #Javascript
You might like
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
2012/10/31 PHP
关于PHP的相似度计算函数:levenshtein的使用介绍
2013/04/15 PHP
解析PHP中的正则表达式以及模式匹配
2013/06/19 PHP
php过滤敏感词的示例
2014/03/31 PHP
javascript 日期常用的方法
2009/11/11 Javascript
谈谈JavaScript中的函数与闭包
2013/04/14 Javascript
计算新浪Weibo消息长度(还可以输入119字)
2013/07/02 Javascript
浅谈JavaScript数据类型及转换
2015/02/28 Javascript
JavaScript绑定事件监听函数的通用方法
2016/05/14 Javascript
JS绘制微信小程序画布时钟
2016/12/24 Javascript
Vue.js自定义指令的用法与实例解析
2017/01/18 Javascript
一篇看懂vuejs的状态管理神器 vuex状态管理模式
2017/04/20 Javascript
vue2.0项目实现路由跳转的方法详解
2018/06/21 Javascript
微信小程序画布圆形进度条显示效果
2020/11/17 Javascript
React 使用Hooks简化受控组件的状态绑定
2019/03/18 Javascript
浅谈javascript中的prototype和__proto__的理解
2019/04/07 Javascript
浅谈Vue SSR中的Bundle的具有使用
2019/11/21 Javascript
js校验开始时间和结束时间
2020/05/26 Javascript
微信小程序中data-key属性之数据传输(经验总结)
2020/08/22 Javascript
vue使用swiper实现左右滑动切换图片
2020/10/16 Javascript
[02:40]DOTA2超级联赛专访430 从小就爱玩对抗性游戏
2013/06/18 DOTA
[00:15]TI9地铁玩家打卡
2019/08/11 DOTA
使用python统计文件行数示例分享
2014/02/21 Python
Python实现动态添加类的属性或成员函数的解决方法
2014/07/16 Python
Python 中Django验证码功能的实现代码
2019/06/20 Python
HTML5 progress和meter控件_动力节点Java学院整理
2017/07/06 HTML / CSS
美国折扣宠物药房:Total Pet Supply
2018/05/27 全球购物
美国购买体育赛事门票网站:TicketCity
2019/03/06 全球购物
阿里巴巴英国:Alibaba英国
2019/12/11 全球购物
Sisley法国希思黎美国官方网站:享誉全球的奢华植物美容品牌
2020/06/27 全球购物
如何查询Oracle数据库中已经创建的索引
2013/10/11 面试题
生物技术毕业生自荐信
2013/10/23 职场文书
外语专业毕业生个人的自荐信
2013/11/19 职场文书
学生实习证明范文
2014/09/28 职场文书
结婚主持人致辞
2015/07/28 职场文书
解决pycharm安装scrapy DLL load failed:找不到指定的程序的问题
2021/06/08 Python