实现效果:

  • 点击对应商品,对应的商品详情页出现,详情页里面还有“Add to cart”按钮和“×”退出按钮。
  • 点击“Add to cart”可以将商品加入购物车,每件商品只能添加一次,如果把购物车的对应商品删除就能再次加入。
  • 商品加入购物车后,导航栏会出现商品数量和总价标识。

一.详情页的实现和其中的方法

1.在子组件literature.vue中写:

  • 应该加一个data先定义一下selecGoods,但是prop中已经有了(prop优先级更高,而且可以父子传参),那就不用在data中写selecGoods了
  • 子组件中addTocart方法中用了$emit把selectGoods数据传给父组件($emit能在当前组件监听到,当前组件定义在父组件上则相当于父组件监听到)

2.父组件App.vue中写:

  • 父组件中@add="addTocart"前面是子组件emit的,后面的随便起名字(在父组件里方法的名字)
  • :selectGoods="selectGoods"使得我在父组件修改selectGoods的值,那子组件selectGoods也会改变(子组件中有prop)

  • 也就是说子组件商品点击加入购物车,selectGoods有数据
  • $emit使数据传给父组件,父组件要用selectGoods数据先在data中定义
  • 父组件中有一个addTocart方法传入的参数selectGoods是子组件的selectGoods,再将它传给this.selectGoods,是父组件的selectGoods(可以随便起名字,要和data中的名字对应)

  • 完成到这里我们实现了点击商品会出现详情页
  • 详情页中"addTocart"将商品加入购物车,数据存到selectGoods中,emit传给父组件
  • 父组件也可以修改数据通过prop传给子组件。

二.购物车页的实现和其中的方法

既然selectGoods已经传到父组件上,那么我就直接把购物车写在父组件里,给购物车页设一个show=false,点击导航,购物车的show变true。

在父组件App.vue中写:

1.导航

2.购物车

Vue小项目二手书商城:(四)详情页和购物车(emit、prop、computed)的更多相关文章

  1. Vue小项目二手书商城:(三)前端渲染数据

    实现内容: axios取到的数据在前端使用(父子组件各自应该怎么使用) 一.简单使用(在哪取在哪用) 1.在App.vue中script中加上data(data专属于当前组件,父子组件传参通过prop ...

  2. Vue小项目二手书商城:(一)准备工作、组件和路由

    本项目基于vue2.5.2,与低版本部分不同之处会在(五)参考资料中提出 完整程序:https://github.com/M-M-Monica/bukesi 实现内容: 资源准备(mock数据) 组件 ...

  3. Vue小项目二手书商城:(二)axios前后端数据交互

    实现内容: 写路由接口(express) axios取数据 一.写接口 1.我们要在前端取到后端的数据(之前写的data.json)可以用vue-resourse或者用axios,在vue2之后官方就 ...

  4. Vue小项目二手书商城:(五)参考资料

    本项目基于vue2.5.2,如有错误,望指正. 完整程序:https://github.com/M-M-Monica/bukesi Vue.js官方文档:https://cn.vuejs.org/v2 ...

  5. vue小项目---管理系统

    在上一篇文章中我们已经学习了vue的基本语法,常用属性,了解了vue的基本使用,现在让我们用vue配合Bootstrap来完成一个小项目. 首先导入Bootstap文件. <link rel=& ...

  6. 学习笔记之Python人机交互小项目二:名片管理系统

    继上次利用列表相关知识做了简单的人机交互的小项目名字管理系统后,当学习到字典时,老师又让我们结合列表和字典的知识,结合一起做一个名片管理系统,这里分享给在学习Python的伙伴! 1.不使用函数 1 ...

  7. 【音乐App】—— Vue-music 项目学习笔记:歌手详情页开发

    前言:以下内容均为学习慕课网高级实战课程的实践爬坑笔记. 项目github地址:https://github.com/66Web/ljq_vue_music,欢迎Star. 歌曲列表 歌曲播放 一.子 ...

  8. Vue通过id跳转到商品详情页

    首页列表: 在这里我用a标签进行跳转,在vue里面使用<router-link></router-link> <router-link :to="{path:' ...

  9. SSH网上商城---商品详情页的制作

    在前面的博文中,小编分别简单的介绍了邮件的发送以及邮件的激活,逛淘宝的小伙伴都有这样的体会,比如在搜索框中输入连衣裙这个商品的时候,会出现多种多样各种款式的连衣裙,连衣裙的信息包括价格,多少人购买,商 ...

随机推荐

  1. tensorflow-Inception-v3模型训练自己的数据代码示例

    一.声明 本代码非原创,源网址不详,仅做学习参考. 二.代码 # -*- coding: utf-8 -*- import glob # 返回一个包含有匹配文件/目录的数组 import os.pat ...

  2. JVM TI

    JVM TI JVM TI全名Java Virtual Machine Tool Interface,是开发虚拟机监控工具使用的编程接口,它可以监控JVM内部时间的执行,也可以控制JVM的某些行为,可 ...

  3. nvidia-smi 实时查看

    需要用到 watch 命令: watch -n nvidia-smi

  4. 扎实学Java之数组与方法

    什么是数组? 数组是一个容器,用来存储多个数据(数据类型相同) 声明一个数组就是在内存中开辟一串连续的空间 数组的结构和基本要素 标识符:数组的名称,用于区分不同的数组 数组元素:向数组中存放的数据 ...

  5. PyCharm:no module named * 解决方法

    1.成功安装模块,无法导入 今天安装完模块pyppeteer,pycharm导入失败,从python的Lib下可以清楚的看到已经安装成功 2.添加当前python环境,不使用默认项目的环境 file& ...

  6. Hunspell介绍及试用

    1.简介 Hunspell是一个为拥有多态和复杂组合词的语言所设计的拼写检查器,原本为匈牙利语设计. Hunspell是一个自由软件,在GPL.LGPL和MPL三许可证下发行. Hunspell对主要 ...

  7. 信步漫谈之Redis—Linux下环境搭建

    一.环境 Linux 系统:Suse11(SLES-11-SP3-DVD-x86_64-GM-DVD1)Redis 安装包:redis-4.0.11.tar.gz      下载地址:http://d ...

  8. kibana查询语法 使用教程

    1. 使用双引号包起来作为一个短语搜索: "like Gecko" 2. ? 匹配单个字符; * 匹配0到多个字符 例如:kiba?a, el*search ? * 不能用作第一个 ...

  9. C#导出文本内容到word文档源码

    将做工程过程中较好的代码片段珍藏起来,下面的代码内容是关于C#导出文本内容到word文档的代码,希望能对小伙伴们也有好处.<%@ Page Language="C#" Aut ...

  10. SpringBoot+Thymeleaf问题

    springboot在controller返回数据到thymeleaf报404 用springboot做一个例子,访问controller可以返回数据,但是到thymeleaf却报404, 检查发现路 ...