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 相关文章推荐
JS 中document.URL 和 windows.location.href 的区别
Nov 11 Javascript
麻雀虽小五脏俱全 Dojo自定义控件应用
Sep 04 Javascript
jquery的index方法实现tab效果
Feb 16 Javascript
根据经纬度计算地球上两点之间的距离js实现代码
Mar 05 Javascript
jQuery学习总结之jQuery事件
Jun 30 Javascript
理解jQuery stop()方法
Nov 21 Javascript
JS中setTimeout的巧妙用法前端函数节流
Mar 24 Javascript
基于Echarts 3.19 制作常用的图形(非静态)
May 19 Javascript
vue对storejs获取的数据进行处理时遇到的几种问题小结
Mar 20 Javascript
使用Vue父子组件通信实现todolist的功能示例代码
Apr 11 Javascript
vue实现分页栏效果
Jun 28 Javascript
基于JavaScript的数据结构队列动画实现示例解析
Aug 06 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
劣质的PHP代码简化
2010/02/08 PHP
php中OR与|| AND与&amp;&amp;的区别总结
2013/10/26 PHP
php简单smarty入门程序实例
2015/06/11 PHP
THINKPHP截取中文字符串函数实例代码
2017/03/20 PHP
php-msf源码详解
2017/12/25 PHP
php中输出json对象的值(实现方法)
2018/03/07 PHP
Ext.FormPanel 提交和 Ext.Ajax.request 异步提交函数的区别
2009/11/12 Javascript
各情景下元素宽高的获取实现代码
2011/09/13 Javascript
根据IP的地址,区分不同的地区,查看不同的网站页面的js代码
2013/02/26 Javascript
javascript多物体运动实现方法分析
2016/01/08 Javascript
手机端点击图片放大特效PhotoSwipe.js插件实现
2016/08/24 Javascript
Vue实现百度下拉提示搜索功能
2017/06/21 Javascript
JavaScript Canvas实现验证码
2020/08/02 Javascript
vue实现菜单切换功能
2019/05/08 Javascript
Vue 页面权限控制和登陆验证功能的实例代码
2019/06/20 Javascript
layui 实现加载动画以及非真实加载进度的方法
2019/09/23 Javascript
关于vue里页面的缓存详解
2019/11/04 Javascript
es6 super关键字的理解与应用实例分析
2020/02/15 Javascript
html5以及jQuery实现本地图片上传前的预览代码实例讲解
2021/03/01 jQuery
[01:09:01]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第一场 10.28
2020/10/28 DOTA
Python __setattr__、 __getattr__、 __delattr__、__call__用法示例
2015/03/06 Python
浅谈使用Python变量时要避免的3个错误
2017/10/30 Python
用Python删除本地目录下某一时间点之前创建的所有文件的实例
2017/12/14 Python
用于业余项目的8个优秀Python库
2018/09/21 Python
Python greenlet和gevent使用代码示例解析
2020/04/01 Python
突破canvas语法限制 让他支持链式语法
2012/12/24 HTML / CSS
会走动的图形html5时钟示例
2014/04/27 HTML / CSS
AVIS安飞士奥地利租车官网:提供奥地利、欧洲和全世界汽车租赁
2016/11/29 全球购物
大学自我鉴定范文
2013/12/26 职场文书
大专生自我评价
2014/01/28 职场文书
国旗下的演讲稿
2014/05/08 职场文书
孝敬父母的演讲稿
2014/05/14 职场文书
林肯就职演讲稿
2014/05/19 职场文书
校园之声广播稿
2015/08/18 职场文书
技术入股合作协议书
2016/03/21 职场文书
Python之matplotlib绘制折线图
2022/04/13 Python