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 相关文章推荐
javascript中的事件代理初探
Mar 08 Javascript
简介JavaScript中的setTime()方法的使用
Jun 11 Javascript
js实现网页多级级联菜单代码
Aug 20 Javascript
javascript断点调试心得分享
Apr 23 Javascript
jQuery实现ToolTip元素定位显示功能示例
Nov 23 Javascript
JavaScript浏览器对象模型BOM(BrowserObjectModel)实例详解
Nov 29 Javascript
JS实现的驼峰式和连字符式转换功能分析
Dec 21 Javascript
为输入框加入数字js校验代码分享
Nov 02 Javascript
JavaScript基于面向对象实现的猜拳游戏
Jan 03 Javascript
vue-cli3搭建项目的详细步骤
Dec 05 Javascript
微信小程序仿淘宝热搜词在搜索框中轮播功能
Jan 21 Javascript
vant实现购物车功能
Jun 29 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应用程序来获取Web服务器的状态信息
2006/10/09 PHP
PHP 错误之引号中使用变量
2009/05/04 PHP
PHP 柱状图实现代码
2009/12/04 PHP
PHP设计模式之迭代器模式的深入解析
2013/06/13 PHP
php设计模式之单例、多例设计模式的应用分析
2013/06/30 PHP
PHP迭代器实现斐波纳契数列的函数
2013/11/12 PHP
thinkphp3查询mssql数据库乱码解决方法分享
2014/02/11 PHP
PHP实现清除MySQL死连接的方法
2016/07/23 PHP
浅谈PHP中静态方法和非静态方法的相互调用
2016/10/04 PHP
CSS中一些@规则的用法小结
2021/03/09 HTML / CSS
jquery获取被勾选的checked(选中)的那一行的3列和4列的值
2013/07/04 Javascript
jQuery实现点击按钮文字变成input框点击保存变成文字
2016/05/09 Javascript
BootStrap初学者对弹出框和进度条的使用感觉
2016/06/27 Javascript
微信公众号-获取用户信息(网页授权获取)实现步骤
2016/10/21 Javascript
JavaScript基于扩展String实现替换字符串中index处字符的方法
2017/06/13 Javascript
angular实现页面打印局部功能的思考与方法
2018/04/13 Javascript
Node.js进阶之核心模块https入门
2018/05/23 Javascript
Nuxt配合Node在实际生产中的应用详解
2018/08/07 Javascript
详解关于Vue2.0路由开启keep-alive时需要注意的地方
2018/09/18 Javascript
详解KOA2如何手写中间件(装饰器模式)
2018/10/11 Javascript
[03:47]2015国际邀请赛第三日现场精彩回顾
2015/08/08 DOTA
[32:26]EG vs IG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[36:13]Mineski vs iG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python基于pyDes库实现des加密的方法
2017/04/29 Python
django fernet fields字段加密实践详解
2019/08/12 Python
Keras-多输入多输出实例(多任务)
2020/06/22 Python
css 元素选择器的简单实例
2016/05/23 HTML / CSS
用HTML5 实现橡皮擦的涂抹效果的教程
2015/05/11 HTML / CSS
vue路由实现登录拦截
2021/03/24 Vue.js
酒店服务实习自我鉴定
2013/09/22 职场文书
学校联谊活动方案
2014/02/15 职场文书
基本公共卫生服务健康教育工作方案
2014/05/22 职场文书
工作作风整顿个人剖析材料
2014/10/11 职场文书
导游词之秦始皇兵马俑博物馆
2019/09/29 职场文书
SpringCloud Alibaba项目实战之nacos-server服务搭建过程
2021/06/21 Java/Android
win10音频服务未响应怎么解决?win10音频服务未响应未修复的解决方法
2022/08/14 数码科技