Vue 购物车案例 黑马学院

本文详细介绍了如何使用Vue.js创建一个购物车应用,包括项目初始化、组件划分、数据获取、商品展示、选中状态控制、数量增减、全选功能、总数量与总价计算等关键步骤,提供完整的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目初始化:

需求1:从0新建项目

需求2:分拆组件,创建组件文件

分析:

①:vue命令创建项目(在根目录下运行)

vue create shopcar-deom

②:下载需要得配置:

yarn add less less-loader bootstrap

③:main.js - 引入bootst 样式

// 直接引入 bootstrap 的css文件样式
import 'bootstrap/dist/css/bootstrap.css'

补充:下载时候可能会因为网络出问题

//查看当前源
yarn config get registry
//设置淘宝源或内网源
yarn config set registry https://registry.npm.taobao.org --global
//恢复源
yarn config set registry https://registry.yarnpkg.com --global

准备代码:

MyHeader:

<template>
  <div class="my-header">购物车案例</div>
</template>

<script>
export default {}
</script>

<style lang="less" scoped>
.my-header {
     
     
  height: 45px;
  line-height: 45px;
  text-align: center;
  background-color: #1d7bff;
  color: #fff;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 2;
}
</style>

MyGoods:

<template>
  <div class="my-goods-item">
    <div class="left">
      <div class="custom-control custom-checkbox">
        <input type="checkbox" class="custom-control-input" id="input">
        <label class="custom-control-label" for="input">
          <img src="http://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg" alt="">
        </label>
      </div>
    </div>
    <div class="right">
      <div class="top">商品名字</div>
      <div class="bottom">
        <span class="price">¥ 100</span>
        <span>
          <MyCount></MyCount>
        </span>
      </div>

    </div
### 关于 Vue 黑马教程或学习资料 Vue 是一种流行的前端框架,而黑马程序员提供了丰富的 Vue 学习资源和教程。以下是关于 Vue 的一些重要知识点以及相关学习材料的内容概述: #### 1. **Vue 属性绑定的缩写** 在 Vue 中,`v-bind` 指令用于动态绑定 HTML 属性到 JavaScript 表达式上。为了简化代码书写,Vue 提供了 `:` 的缩写方式来替代完整的 `v-bind` 写法[^1]。例如: - 动态绑定类名可以使用 `:class` 替代 `v-bind:class`。 - 绑定图片路径可以用 `:src` 而不是 `v-bind:src`。 这种语法糖不仅提高了开发效率,还让模板更加简洁易读。 ```html <div :class="myClass"></div> <img :src="imagePath"> ``` --- #### 2. **Vue 响应式基础** 响应式编程是 Vue 的核心特性之一,在现代 Vue 版本中(如 Vue 3),推荐通过 `<script setup>` 和组合 API 来实现更灵活的数据管理[^2]。具体来说: - 使用 `import { ref, reactive } from 'vue';` 导入必要的工具函数。 - 利用 `ref()` 创建基本类型的响应式变量;利用 `reactive()` 处理对象或其他复杂数据结构。 下面是一个简单的例子演示如何声明并更新一个响应式的计数器: ```javascript <script setup> // 导入所需模块 import { ref } from 'vue'; // 定义初始值为0的响应式变量state const state = ref(0); function increment() { state.value++; } </script> <template> <!-- 将按钮点击事件绑定至increment方法 --> <button @click="increment">增加 {{ state }}</button> </template> ``` --- #### 3. **父子组件通信机制** 当构建复杂的 Vue 应用程序时,经常需要解决不同层次之间的交互问题。比如在一个搜索功能场景下,父级组件可能负责监听子组件触发的自定义事件,并据此完成某些业务逻辑处理[^3]。这通常涉及以下几个方面: - 父组件向子组件传递属性 (props)。 - 子组件通过 `$emit('eventName', payload)` 向外发送通知给其上级节点。 举个实际的例子,“删除选中的商品项”这一需求可以通过如下流程达成: - 子组件内部调用 emit 方法告知外部自己已被移除; - 对应的回调函数则由父容器注册好以同步全局状态变化。 --- #### 4. **综合实战案例分析** 对于初学者而言,理论知识固然重要,但实践才是检验真理的标准。因此,《Vue多文件学习项目综合案例——购物车》作为一份详尽的教学文档值得深入研究[^4]。它涵盖了从前端界面设计到后端接口对接整个链条上的诸多细节要点,包括但不限于以下几部分内容: - 如何划分单页面应用的不同区域? - Vuex 数据仓库的作用及其配置过程是什么样的? 这里给出 cart-footer.vue 文件片段示意部分操作逻辑: ```html <template> <footer class="cart-footer"> <!-- 显示总价 --> <span>总计金额:{{ totalPrice }}元</span> <!-- 结算按钮 --> <button @click="checkout()">去结算</button> </footer> </template> <script> export default { computed:{ totalPrice(){ return this.$store.getters.totalPrice; } }, methods:{ checkout(){ alert(`即将跳转支付页`); } } }; </script> ``` 上述代码展示了计算属性与方法定义的方式,同时也体现了 Vuex getter 获取共享状态的能力。 --- ####
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程武六七

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值