微信小程序黑马优购讲解


1.准备工作

1.首先拿到项目后做好项目搭建

(1)搭建之前首先要分析整个项目的剧本组成是否有源码或者是效果图(黑马优购有源码和效果图 和请求的接口文档)
(2)在源码或者效果图上分析页面的组成以及效果的展示页面跳转等
(3)在以上准备工作完成之后就要利用微信开发者工具进行开发

2.搭建基础页面

1.首先打开项目文件找到app.json中创建该项目需要的文件
在这里插入图片描述
2.在app.json中配置底部导航实现底部基本页面的跳转
在这里插入图片描述
3.底部tabbar配好路由可以跳不同的页面
接着就可以写首页的布局以及功能的实现
在请求数据时用的是封装的request请求
在根目录下创建http文件里面包含fetch.js http.js 和api.js在这个文件中来封装请求的接口
api.js
在这里插入图片描述
fetch.js
在这里插入图片描述
http.js
在这里插入图片描述
采用封装的方法可以处理项目在开发过程中出现一致的功能或者效果是可以用这种方式来提高开发效率

接着就可以通过项目的api文档来获取到接口请求过来的数据
首页的轮播图,nav导航,以及下面的楼层都是根据接口地址来获取所需要的所有数据最后渲染到页面上,可以采用组件化开发思想利用组件在首页注册引入。

分类页面

1.商品的分类页面是在首页给中间导航绑定点击事件然后在首页的js文件下写跳转的路由 这里用的是微信小程序文档的方法进行页面跳转
在这里插入图片描述
2.在分类页面,根据api接口文档在封装好的http文件中请求分类页面需要的的数据分类页面顶部的搜索按钮可以根据封装的直接引入,下面分类数据请求接口左侧的侧导航与右边的商品相当于竖向的tab切换
可以根据左侧对应的下标来找到对用的商品
在这里插入图片描述
在这里插入图片描述

列表页内容

1.通过在商品页面右侧的商品设置点击事件根据绑定的自定义是属性这样可以根据唯一的商品goods_id找到对应的商品列表数据
代码如下:
在这里插入图片描述
通过点击事件跳转到商品列表页(这里注意跳转路由需要传参就是商品的当前id)
在这里插入图片描述
这样可以实现到列表页一个跳转,在列表页根据传的参数id可以获取当前点击的对应的数据
然后遍历数据渲染到列表页

这里有部分功能的实现是上拉加载和下拉加刷新的功能实现
上拉加载下拉刷新

详情页面

跳转详情页也是根据配置详情页的接口这里需要商品的id根据id来获取整个商品的详情数据 在根据接口对页面进行渲染
代码如下:在这里插入图片描述
在详情页面可以根据商品id来渲染页面
在详情页有加入收藏、分享、客服的功能 加入购物车 :是根据效果来定义一个需要的数组 用一个数组来接收,给点击购物车绑定一个点击事件 当点击后将数据保存到数组里面并保存到本地存储里面,这样的话可以让数据不丢失 通过wx.setStorageSync 方法将数据保存 取的话可以使用wx.getStorageSync 方法获取本地存储的数据
这里要注意 添加购物车要判断商品id是否一致,当id一致时就不会往数组里面添加,只会增加对应的商品数量

handleCartAdd() {
   
    console.log(this.data.data);
    let k = false;
    // 判重复
    let price = this.data.data.goods_price;
    let image = this.data.data.goods_small_logo;
    let flag = false;
    // 复选框的状态
    let num =
### 黑马程序员微信小程序黑马”教程与资料 #### 项目概述 黑马是一个基于微信小程序的电商应用案例,旨在帮助开发者掌握从小程序的基础构建到复杂业务逻辑实现的过程。此项目不仅涵盖了基础的小程序页面搭建,还包括了诸如商品展示、物车管理以及订单处理等功能模块。 #### 安装配置指南 对于初次接触该项目的新手来说,在设置开发环境时可能会遇到一些挑战。例如,在安装依赖包的过程中如果未正确启用 npm 支持,则可能导致后续功能无法正常工作[^1]。因此建议严格按照官方文档指示操作,并确保所有必要的工具链都已就绪后再继续下一步骤。 #### 数据交互机制 在实际编码过程中,理解如何有效地管理和传递数据至关重要。通过合理运用 `setData` 方法可以实现在视图层和逻辑层之间同步更新状态信息;而当涉及到更复杂的场景如深拷贝或浅拷贝的选择时,则需谨慎考虑以避免不必要的错误发生[^2]。 #### 功能扩展实例 为了增强用户体验,“黑马”还实现了多种实用特性。比如针对订单列表中的创建时间字段进行了格式化转换,使得显示更加友好直观。具体做法是在接收到服务器响应的数据之后利用 JavaScript 的内置函数对其进行加工处理再赋值给页面变量[^5]: ```javascript this.setData({ orders: res.orders.map(v => ({ ...v, create_time_cn: (new Date(v.create_time * 1000)).toLocaleString() })) }); ``` #### 用户互动设计 为了让应用程序更具吸引力并提高用户的参与度,加入了将选定商品添加至物车的功能。这通常涉及到了本地持久化的概念——即即使关闭当前会话后仍能保留之前的操作记录。为此可以通过监听特定按钮点击事件来触发相应的保存动作[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值