Vue2.0开发之——购物车案例-Footer组件封装(50)

news2024/11/16 19:57:23

一 概述

  • 导入Footer子组件
  • 定义fullState计算属性
  • 把全选状态传递给Footer子组件
  • 实现全选功能

二 导入Footer子组件

2.1 App.vue中导入Footer组件

import Footer from "@/components/Footer/Footer.vue";

2.2 App.vue中注册Footer子组件

components: {
    Header,
    Goods,
    Footer
  },

2.3 App.vue中使用Footer子组件

<template>
  <div class="app-container">
    <Header title="购物车案例"></Header>
    <Goods
      v-for="item in list"
      :key="item.id"
      :id="item.id"
      :good="item"
      @state-change="getNewState"
    ></Goods>
    <Footer></Footer>
  </div>
</template>

2.4 效果图

三 定义fullState计算属性

3.1 Footer.vue中全选状态

  • 当Goods中的所有商品全部选中时,Footer.vue中的全选按钮才被选中
  • 在App.vue中通过计算属性computed,计算Goods中商品按钮的状态

3.2 App.vue中通过计算属性确定Goods商品状态

代码

 //计算属性
 computed:{
   //动态计算出全选的状态是true还是false
   fullState(){
    return this.list.every(item=>item.goods_state)
   }
  }

App.vue中查看计算属性的值

<p>{{ fullState }}</p>

效果图

四 把全选状态传递给Footer子组件—父向子传值

4.1 Footer子组件中定义全选属性

export default {
  props:{
    isFull:{
      type:Boolean,
      default:false
    }
  }
}

4.2 Footer子组件中使用自定义全选属性

<input
        type="checkbox"
        class="custom-control-input"
        id="cbFull"
        :checked="isFull"
      />

4.3 App.vue父组件向子组件Footer.vue中传值

<Footer :isFull="fullState"></Footer>

4.4 效果图

五 实现全选功能—自定义事件

5.1 Footer.vue子组件

监听checkbox状态改变事件

<input
        type="checkbox"
        class="custom-control-input"
        id="cbFull"
        :checked="isFull"
        @change="fullChange"
      />

发送自定义事件

  methods: {
    fullChange(e){
        this.$emit('full-change',e.target.checked)
    }
  },

5.2 App.vue-父组件

监听子组件的事件变化

<Footer 
      :isFull="fullState" 
       @full-change="getFullState">
      </Footer>

实现Goods状态变化

getFullState(val){
      this.list.forEach(item=>(item.goods_state=val))
}

5.3 效果图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/390814.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

云原生之使用Docker部署Gitblit服务器

云原生之使用Docker部署Gitblit服务器一、Gitblit介绍二、检查本地docker环境1.检查docker版本2.检查docker状态三、下载Gitblit镜像四、部署Gitblit应用1.创建部署目录2.创建Gitblit容器3.检查Gitblit容器状态4.检查Gitblit容器运行日志五、访问Gitblit首页1.访问Gitblit首页2…

LPDDR4x 的 学习总结(3) - SDRAM基本功能

上一节,我们重点介绍了array的存储结构。 本节介绍array周边的电路,对DDR的基本读写操作的相关功能模块的理解。 即通过哪些模块可以实现对ddr的基本读写。最简化的方式是把存储操作理解为行列选择&#xff0c;拆分为横竖两个纬度&#xff0c;最终实现对arrary进行读写。横向…

Kerberos 域委派攻击之约束性委派

CSDN自动博客文章迁移由于非约束性委派的不安全性&#xff0c;微软在 Windows Server 2003 中引入了约束委派。区别在于不会直接把 TGT 给服务&#xff0c;所发送的认证信息中包含了允许访问的服务&#xff0c;即不允许服务代表用户去访问其他服务。同时为了在 Kerberos 协议层…

1.数据结构前言

数据结构很重要&#xff01; 数据结构很重要&#xff01;&#xff01;&#xff01; 数据结构很重要&#xff01;&#xff01;&#xff01;&#xff01; 前言.思考 1.什么是数据结构 &#xff1f;&#xff08;What&#xff09; 2.为什么要学数据结构 &#xff1f;&#xff1f; (…

删除链表元素相关的练习

目录 一、移除链表元素 二、删除排序链表中的重复元素 三、删除排序链表中的重复元素 || 四、删除链表的倒数第 N 个结点 一、移除链表元素 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头…

python字典和集合——笔记

一、介绍 1、泛映射类型 collections.abc模块中有Mapping和MutableMapping这两个抽象基类&#xff0c;它们的作用是为dict和其他类似的类型定义形式接口&#xff08;在Python 2.6到Python 3.2的版本中&#xff0c;这些类还不属于collections.abc模块&#xff0c;而是隶属于coll…

【震撼发布】《致敬未来的攻城狮计划》| 文末赠书3本

《致敬未来的攻城狮计划》—— 文末有福利 摘要&#xff1a; 一个崭新的计划&#xff0c;寻找那群有志于向嵌入式发展的未来工程师&#xff01; 文章目录1 活动计划初衷2 活动计划形式3 活动计划收获4 活动计划要求5 活动计划时间6 活动计划致谢7 活动计划特别说明8 温馨提示9 …

Kerberos 域委派攻击之非约束性委派

CSDN文章自动迁移自博客在Windows 2000 Server 首次发布 Active Directory 时&#xff0c;Microsoft 必须提供一种简单的机制来支持用户通过 Kerberos 向 Web Server 进行身份验证并需要代表该用户更新后端数据库服务器上的记录的方案。这通常称为“Kerberos 双跳问题”&#x…

零入门kubernetes网络实战-20->golang编程syscall操作tun设备介绍

《零入门kubernetes网络实战》视频专栏地址 https://www.ixigua.com/7193641905282875942 本篇文章视频地址(稍后上传) 本篇文章主要是使用golang自带的syscall包来创建tun类型的虚拟网络设备。 注意&#xff1a; 目前只能使用syscall包来创建tun类型的虚拟设备。 tun虚拟网…

【RockerMQ】003-Windows 安装 RocketMQ

【RockerMQ】003-Windows 安装 RocketMQ 一、准备工作 1、环境要求 64位JDK 1.8;Maven 3.2.x;64位操作系统系统&#xff0c;本文档在Windows上安装 2、下载解压 下载地址 https://archive.apache.org/dist/rocketmq/5.1.0/ 下载目标 解压 到不含中文路径的目录下 环境变…

Python进阶-----面对对象7.0(细谈__new__方法和__init__方法)

目录 前言&#xff1a; __init__方法 __new__方法&#xff08;重点!&#xff09; 1.__new__方法的调用过程 2.重写__new__方法 3.__new__方法不同返回值的情况 3.单例模式 前言&#xff1a; 上一期初步介绍了__new__()方法&#xff0c;但是实际上这个方法还有非常多的内…

操作系统——18.进程互斥的软件实现方法

这篇文章我们来讲一下进程互斥的软件实现方法 目录 1.概述 2.单标志法 3.双标志检查法 4.双标志后检查法 5.Perterson算法 6.小结 1.概述 首先&#xff0c;我们来看一下这节的大体框架 学习提示: 理解各个算法的思想、原理结合上小节学习的“实现互斥的四个逻辑部分”…

通用业务平台设计(五):预警平台建设

前言 在上家公司&#xff0c;随着业务的不断拓展(从支持单个国家单个主体演变成支持多个国家多个主体)&#xff0c;对预警的诉求越来越紧迫&#xff1b;如何保障业务的稳定性那&#xff1f;预警可以帮我们提前甄别风险&#xff0c;从而让我们可以在风险来临前将其消灭&#xff…

深度学习笔记:dropout和调优超参数方法

1 Dropout Dropout是一个常用于深度学习的减轻过拟合的方法。该方法在每一轮训练中随机删除部分隐藏层神经元。被删除的神经元不会进行正向或反向信号传递。在测试阶段所有神经元都会传递信号&#xff0c;但对各个神经元的输出要乘以训练时删除比例。 Dropout实现程序&#xf…

毕业设计 基于STM32单片机无线ZIGBEE智能大棚土壤湿度光照检测

基于STM32单片机无线ZIGBEE智能大棚土壤湿度光照检测1、项目简介1.1 系统构成1.2 系统功能2、部分电路设计2.1 STM32F103C8T6核心系统电路设计2.2 光敏采集电路设计2.3 温度采集电路设计3、部分代码展示3.1 读取DS18B20温度值3.2 定时器初始化1、项目简介 选题指导&#xff0c…

Learning Typescript and React in ts

目录 Basic typescript What is typescript? Configuring the TypeScript Compiler Fundamental build in types TypeScript Simple Types TypeScript Special Types Type: unknown Type: never Type: undefined & null Arrays Tuple Enums functions Ob…

Java集合专题

文章目录框架体系CollectionListArrayListLinkedListVectorSetHashSetLinkedHashSetTreeSetMapHashMapHashtableLinkedHashMapTreeMapPropertiesCollections框架体系 1、集合主要分了两组&#xff08;单列集合&#xff0c;双列集合&#xff09; 2、Collection接口有两个重要的子…

2.SpringSecurity认证

2.1登录校验流程 2.2认证原理 *源码流程: *自定义认证流程: *校验流程: *认证和校验连接: 2.3思路分析 *登录:

SQLI-Labs通关(2)5-7关

跟之前一样首先传参&#xff0c;然后查看注入点以及闭合 用and 11 and 12都没问题&#xff0c;接下来测试单引号 利用 and 12的时候会报错 利用order by来判断列数 得出一共三列 接下来就是联合查询 但是这个并不会回显 那么就利用盲注或者报错注入 在这里我们利用报错来测…

Vue3的生命周期函数

文章目录&#x1f31f; 写在前面&#x1f31f; 生命周期钩子函数&#x1f31f; 组合式API生命周期&#x1f31f; 写在最后&#x1f31f; 写在前面 专栏介绍&#xff1a; 凉哥作为 Vue 的忠实 粉丝输出过大量的 Vue 文章&#xff0c;应粉丝要求开始更新 Vue3 的相关技术文章&am…