当前位置: 首页 > news >正文

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

一 概述

  • 导入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><Goodsv-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还是falsefullState(){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子组件中使用自定义全选属性

<inputtype="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状态改变事件

<inputtype="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.lryc.cn/news/32284.html

相关文章:

  • HTML基本概述
  • Vue 3.0 响应式 计算和侦听 【Vue3 从零开始】
  • 1.mbedtls移植到STM32
  • 模块、包和异常
  • RocketMQ控制台的安装与启动
  • pytorch安装的超级详细教程(没有之一)
  • leetcode两数之和
  • 断点调试(debug)
  • Vuex 状态管理
  • 射频功率放大器在辉光放电特征及风速测量原理中的应用
  • keepalived+nginx 双机热备搭建
  • 零基础如何入门学习Python?
  • 认识CSS之基础选择器
  • JavaScript面试题整理汇总
  • 科普| 什么是云原生?
  • Spring Boot 3.0系列【9】核心特性篇之依赖管理
  • 每日算法题
  • xss靶场绕过
  • 【数据结构】核心数据结构之二叉堆的原理及实现
  • Spring Cloud Alibaba+saas企业架构技术选型+架构全景业务图 + 架构典型部署方案
  • RocketMQ-03
  • 大神教你在 Linux 中查看你的时区
  • Redis持久化策略
  • 显著性检验【t-test、方差分析、ks检验】
  • 访问学者在德国访学生活衣食住行攻略
  • SQL-刷题技巧-删除重复记录
  • 基于JSP的虚拟账号交易平台
  • LeetCode201_201. 数字范围按位与
  • 一款好的风险管理软件可以做什么
  • html2canvas使用文档