该文章是学习黑马小程序时所做。
1、接口文档 2、帮助文档 3、项目搭建3.1、新建小程序项目
填入自己的appid
3.2、搭建项目目录结构
-
删除初始化项目无用代码
① app.json中,删除日志界面log,修改小程序标题
② 删除pages文件夹下的logs文件夹
③ 清空app.wxss中内容
④ 清空app.js中内容,使用wx-App
生成最基础界面模板
⑤ 清空index.wxml中代码
⑥ 清空index.wxss中内容
⑦ 清空index.js中代码,使用wx-Page初始化index.js中代码
⑧ 修改index.json中代码,单独修改首页标题
⑨ 删除util文件夹。 -
搭建项目目录结构
录名 作用 styles 存放公共样式 components 存放组件 lib 存放第三方库 utils 自己的工具库 request 自己的SKD
3.3、搭建项目页面
⻚⾯名称 | 名称 |
---|---|
⾸⻚ | index |
分类⻚⾯ | category |
商品列表⻚⾯ | goods_list |
商品详情⻚⾯ | goods_detail |
购物⻋⻚⾯ | cart |
收藏⻚⾯ | collect |
订单⻚⾯ | order |
搜索⻚⾯ | search |
个⼈中⼼⻚⾯ | user |
意⻅反馈⻚⾯ | feedback |
登录⻚⾯ | login |
授权⻚⾯ | auth |
结算⻚⾯ | pay |
3.4、引入字体图标
-
打开阿⾥巴巴字体图标 ⽹站
-
选择的图标
-
添加⾄项⽬
-
下载到本地,选择第二个Font Class,并在地址栏打开新地址,复制全部代码到项目中
-
将样式⽂件 由 css 修改为 wxss
-
⼩程序中引⼊,在全局app.wxss中引入,就可以在每个wxss中使用了
-
测试
3.5、搭建项目的tabbar结构
- 目录下新增文件夹icons,将图标文件放到里面
- 在app.json中实现tabBar
3.6、基础样式搭建
界面调用主题颜色
在index.wxss中使用
小程序标题红底白字
在app.json中通过window设置
3.7、添加服务器接口域名
在这里将服务器接口域名加上,否则请求不到数据
4.1、效果
4.2、业务逻辑
-
使⽤tabbar 实现底部导航功能
-
使⽤⾃定义组件的⽅式 实现 头部搜索框
-
加载 轮播图 数据
① 请求数据
② 渲染数据
基础版本:
封装请求版本: -
加载 导航 数据
-
加载 楼层 数据
4.3、接口
- 获取⾸⻚轮播图数据
https://api-hmugo-web.itheima.net/api/public/v1/home/swiperdata
- 获取⾸⻚分类菜单数据
https://api-hmugo-web.itheima.net/api/public/v1/home/catitems
- 获取⾸⻚ 楼层数据
https://api-hmugo-web.itheima.net/api/public/v1/home/floordata
4.4、关键技术
- ⼩程序内置 request API
- es6的 promise
- ⼩程序 swiper 组件
- ⾃定义组件 实现 搜索框
5.1、效果
5.2、业务逻辑
-
加载分类⻚⾯数据
接口数据关系映射
① 请求数据并构造数据 -
点击左侧菜单,右侧数据动态渲染
-
缓存
5.3、接口
- 分类⻚⾯数据
https://api-hmugo-web.itheima.net/api/public/v1/categories
5.4、关键技术
- scroll–view 组件
- es7的 async 和 await
5.5、小程序中支持es7中的async语法
es7的 async 号称是解决回调的最终⽅案
- 在⼩程序的开发⼯具中,勾选 es6转es5语法
- 下载 facebook的regenerator库中的 regenerator/packages/regenerator-runtime/runtime.js
- 在⼩程序⽬录下新建⽂件夹
lib/runtime/runtime.js
,将代码拷⻉进去 - 在每⼀个需要使⽤async语法的⻚⾯js⽂件中,都引⼊(不能全局引⼊)
import regeneratorRuntime from '../../lib/runtime/runtime';
6.1、效果
6.2、业务逻辑
- 加载商品列表数据
- 启⽤下拉⻚⾯功能
① ⻚⾯的json⽂件中开启设置 enablePullDownRefresh:true
② ⻚⾯的js中,绑定事件 onPullDownRefresh - 启⽤上拉⻚⾯功能 onReachBottom ⻚⾯触底事件
- 加载下⼀⻚功能
6.3、接口
-
商品列表搜索
https://api-hmugo-web.itheima.net/api/public/v1/goods/search
6.4、关键技术
- ⼩程序配置⽂件中 启⽤上拉 和下拉功能
- 搜索框和tab栏是⼩程序的⾃定义组件(有组件事件和参数交互)
7.1、效果
7.2、业务逻辑
- 渲染商品详情数据
- 点击图⽚,调出图⽚画廊,进⾏预览
- 点击收藏
- 联系客服
- 分享功能
- 加⼊购物⻋
7.3、接口
- 获取详情数据接⼝
https://api-hmugo-web.itheima.net/api/public/v1/goods/detail
- 加⼊购物⻋接⼝ 使⽤本地存储来维护购物⻋数据
- ⽴即购买接⼝ (相当于是 创建订单接⼝)
https://api-hmugo-web.itheima.net/api/public/v1/goods/qsearch
7.4、关键技术
- swiper组件
- 本地存储实现 收藏功
- 联系客服 ⼩程序管理后台中 直接添加即可
- 富⽂本标签 渲染 富⽂本
- ⼩程序 预览图⽚接⼝
8.1、效果
8.2、业务逻辑
- 获取本地存储中的数据进⾏渲染
- 点击商品可以跳转到商品详情⻚⾯
8.3、接口
无
8.4、关键技术
- ⼩程序 ⾃定义组件
- 本地存储 加载收藏数据
9.1、效果
9.2、业务逻辑
- 渲染购物⻋数据
- 添加收货地址
- 修改商品数量
- 单选和全选功能
9.3、接口
- 获取购物⻋数据 本地存储实现
- 调用微信的收货地址
9.4、关键技术
- ⼩程序 选择收货地址 api
- ⼩程序 复选框 组件
10.1、效果
10.2、业务逻辑
- 获取微信收货地址
- 渲染购物⻋中要结算的商品
- 实现⽀付
① 获取微信的登录信息
② 获取⾃⼰后台返回的⽀付相关参数
③ 调⽤微信接⼝实现 ⽀付
④ ⽀付成功创建订单
⑤ 跳转到订单⻚⾯
10.3、支付流程
10.4、接口
-
获取预⽀付参数
https://api-hmugo-web.itheima.net/api/public/v1/my/orders/req_unifiedorder
-
创建订单
https://api.zbztb.cn/api/public/v1/my/orders/create
-
更新订单状态
https://api.zbztb.cn/api/public/v1/my/orders/chkOrder
10.5、关键技术
- 小程序 支付 api
11.1、效果
11.2、特务逻辑
- 获取⽤⼾信息 返回
encryptedData,rawData,iv,signature
- ⼩程序登录 返回
code
- 提交数据到⾃⼰ 的后台 执⾏post请求 提交数据
encryptedData,rawData,iv,signature code
- 将
token
和⽤⼾数据rawData
存⼊本地存储
11.3、接口
- 提交数据到后台 返回token
https://api-hmugo-web.itheima.net/api/public/v1/users/wxlogin
12.1、效果
12.2、 业务逻辑
- 根据不同的的状态去加载不同的订单数据
- 点击标题紧挨着对应数据
12.3. 接⼝
-
创建订单
https://api-hmugo-web.itheima.net/api/public/v1/my/orders/create
-
查看订单支付状态
https://api-hmugo-web.itheima.net/api/public/v1/my/orders/chkOrder
-
历史订单查询
https://api-hmugo-web.itheima.net/api/public/v1/my/orders/all
12.4. 关键技术
- ⼩程序 ⾃定义组件的 传参 ⽗向⼦动态传参
this.selectComponent("#tabs");
- 时间戳 格式化处理
13.1、效果
13.2、接⼝
- 搜索建议查询
https://api-hmugo-web.itheima.net/api/public/v1/goods/qsearch
13.3、业务逻辑
- 获取输⼊框的值进⾏搜索和渲染
- 点击 取消 按钮时 清除输⼊状态,修改⻚⾯模样
13.4、关键技术
- ⼩程序 输⼊框组件
- 输⼊值改变时,为了提⾼性能,使⽤ 防抖 技术
14.1、效果
14.2、业务逻辑
- 获取登录信息
- 加载收藏信息
14.3、接⼝
- 获取⽤⼾信息
- 获取收藏数据 从本地存储中获取
- 获取订单数据
https://api-hmugo-web.itheima.net/api/public/v1/my/orders/all
14.4、关键技术
15、意见与反馈页面15.1、效果
15.2、业务逻辑
- 点击
+
可以选择本地图⽚,并且显⽰到⻚⾯上 - 点击
提交
可以上传图⽚到 接⼝ 地址 新浪图床 上https://www.muzijuping.com/Home/Index/UploadAction/
- 点击图⽚,会移除⾃⼰
- 点击 tab栏的标题,可以切换选中效果
15.3、接口
无
15.4 关键技术
- 自定义组件tab
- 自定义组件 图片 删除组件
- 小程序上传文件api
16.1、封装网络请求
将wx-request封装为promise,参数通过params传递,并将结果通过resolve和reject传递出去