vue2 -- 购物车小案例

1. 实现效果

2. 实现步骤

① 初始化项目基本结构

 

② 封装 MyHeader 组件

 

③ 基于 axios 请求商品列表数据( GET 请求,地址为 https://www.escook.cn/api/cart )

 

④ 封装 MyFooter 组件

 

⑤ 封装 MyGoods 组件

 

⑥ 封装 MyCounter 组件

 

3. 总结

① 能够知道 vue 中常用的生命周期函数

 创建阶段、运行阶段、销毁阶段

 created、mounted

② 能够知道如何实现组件之间的数据共享

 父 -> 子(自定义属性)

 子 -> 父(自定义事件)

 兄弟组件(EventBus)

③ 能够知道如何使用 ref 引用 DOM 元素或组件

 给元素或组件添加 ref="xxx" 的引用名称

 通过 this.$refs.xxx 获取元素或组件的实例

Vue.js 可以用来构建一个简单的购物车功能,以下是一个基本的示例代码,展示了如何使用 VueVuex 和 Vue Router 来实现购物车的增删和结算功能。请注意,这只是一个简化版的示例,并未包含所有细节,如错误处理、商品数据管理等,但核心概念是清晰的。 ```html <!-- 主页面(App.vue) --> <template> <div> <router-view></router-view> <Cart v-if="showCart" :cart-items="cartItems"></Cart> </div> </template> <script> import { mapState } from 'vuex'; import Cart from './components/Cart.vue'; export default { computed: { ...mapState(['cartItems', 'showCart']), }, }; </script> <!-- Cart.vue --> <template> <button @click="addItem">Add to Cart</button> <ul> <li v-for="(item, index) in cartItems" :key="index"> {{ item.name }} - {{ item.price }} <button @click="removeItem(index)">Remove</button> </li> </ul> <button @click="checkout">Checkout</button> </template> <script> export default { methods: { addItem() { // 假设我们从服务器获取商品信息 const newItem = { name: 'Item', price: 10 }; this.$store.dispatch('addCartItem', newItem); }, removeItem(index) { this.$store.dispatch('removeCartItem', index); }, checkout() { // 这里可能跳转到支付页面或者显示结算信息 this.showCart = false; alert('Checking out...'); }, }, }; </script> <!-- vuex store --> // store.js export const state = { cartItems: [], showCart: true, }; export const mutations = { addCartItem(state, newItem) { state.cartItems.push(newItem); }, removeCartItem(state, index) { state.cartItems.splice(index, 1); }, }; export const actions = { async addCartItem({ commit }, newItem) { // 在实际应用中,这里可能是异步操作 commit('addCartItem', newItem); }, async removeCartItem({ commit }, index) { // 同上 commit('removeCartItem', index); }, }; </script> ``` 在这个例子中,`App.vue` 负责渲染购物车组件并管理购物车状态,`Cart.vue` 是购物车的界面,展示商品列表并提供添加和删除按钮,`vuex` 存储购物车的状态。当用户点击“添加到购物车”时,通过 Vuex 的 `actions` 发起异步操作(在这里只是简单地添加),真正处理商品数据时通常会涉及 API 调用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值