# 微信小程序学习 起手式DEMO仿肯德基(待完善)
## 小程序? 大场景?
微信小程序本质上来说就是一个 HTML 5(移动网页) 应用,用view、scoll-view代替了div标签等,换汤不换药。在微信中运行时,微信小程序获得更多的系统权限。首先是数据缓存能力,这可以让用户在打开一个小程序的时候将程序的主要框架缓存到微信上,下一次就可以快速打开了。微信创始人张小龙曾说过,微信应用号希望实现的目标是“用完即走,无需安装和卸载”,也就是说以后当你要使用一个应用时,只需要在微信里搜索就可以直接使用了,如摩拜、美团等小型使用低频的app使用该套技术可大量节省开发成本。最近又新增了开放个人开发、公众号关联推送的加强,可谓使用场景不容小觑。
## 起手做什么?
由于本人吃货一枚,家门口有一家KFC,之前KFC的app经常有一些福利卷,既然用惯了这个便捷实惠的app,于是就做它了。
言归正传,先来分析一下一步一步该做啥,做一个小demo成就感还是满满的。
![](http://xurenjie.cn:3000/img/KFC/KFC1.png)
### 完成的功能:
附近位置选择-联动菜单导航-模拟数据-抽屉式购物车-获取用户微信信息-页面传值-数据生成订单
## 体验地址
#### [体验点我,比较大,请耐心等待2333,最好clone下来本地跑55555~](http://xurenjie.cn:3000/img/KFC/KFC_gif.gif)
http://xurenjie.cn:3000/img/KFC/KFC_gif.gif
抱歉!!GIF太卡了太卡了,简易clone下来本地跑起来效果最佳
直接点餐会自动为你找到最近的餐厅,不过离最近的kfc太远的不太行
## 用到的工具和文档:
1. **开发调试工具:** [微信小程序平台教程](https://mp.weixin.qq.com/debug/wxadoc/dev/),安装好最基本的啦!稍微过一遍简易文档。
2. **开发‘字典’文档:** [微信小程序开发教程手册文档](https://www.w3cschool.cn/weixinapp/9wou1q8j.html)功能使用方法都在上面挺全的。通过
阅读文档了解页面的搭建、页面路由、导航跳转、数据绑定、条件渲染、列表渲染、scroll-view、request、radio、modal、toast、map、位置、数据缓存、动画、验证信息。
3. **easy-mock:** [easy-mock](www.easy-mock.com)模拟后端数据,后面会简单介绍配置。
4. **腾讯地图API:** [腾讯地图小程序](http://lbs.qq.com/qqmap_wx_jssdk/index.html)有地点搜索、关键词输入提示、逆地址解析(坐标位置描述)地址解析(地址转坐标)距离计算、获取城市列表、获取城市区县的一步配置教程。
5. **WeUI** [WeUI github](https://github.com/weui/weui-wxss)微信专用的结构样式组件库,加速开发速度,BEM规范代码,增强可读性
## 目录结构
├── app.js
├── app.json
├── app.wxss
├── pages
│ ├── .DS_Store
│ ├── KFC
│ │ ├── KFC.js
│ │ ├── KFC.wxml
│ │ └── KFC.wxss
│ ├── card
│ │ ├── card.js
│ │ ├── card.wxml
│ │ └── card.wxss
│ ├── halladdress
│ │ ├── .DS_Store
│ │ ├── halladdress.js
│ │ ├── halladdress.wxml
│ │ └── halladdress.wxss
│ ├── index
│ │ ├── index.js
│ │ ├── index.wxml
│ │ └── index.wxss
│ ├── logs
│ │ ├── logs.js
│ │ ├── logs.json
│ │ ├── logs.wxml
│ │ └── logs.wxss
│ ├── menu
│ │ ├── index.html
│ │ ├── menu.js
│ │ ├── menu.wxml
│ │ └── menu.wxss
│ ├── order
│ │ ├── order.js
│ │ ├── order.wxml
│ │ └── order.wxss
│ └── takeout
│ ├── message
│ │ ├── message.js
│ │ ├── message.wxml
│ │ └── message.wxss
│ ├── qqmap-wx-jssdk.min.js
│ ├── takeout.js
│ ├── takeout.wxml
│ └── takeout.wxss
├── style
│ ├── .DS_Store
│ └── weui.wxss
└── utils
└── util.js
#### 页面注册
#### app.json
"pages": [
"pages/index/index", // 首页
"pages/KFC/KFC", // K金商城页
"pages/menu/menu", // 菜单页
"pages/card/card", // 卡包页
"pages/order/order", // 订单页
"pages/takeout/takeout", // 外卖地图页
"pages/takeout/message/message", // 填写外卖信息页
"pages/halladdress/halladdress", // 附近餐厅页
"pages/logs/logs" // 日志页
]
我们可以通过官网的文档或W3C教程上初始化了一个小程序目录,小程序的每个页面都放在pages目录下
每次添加一个新页面,都需要先在app.json.page下注册。
## 数据模拟
mock.js大红大紫,让前端独立于后端,用它来模拟KFC数据
不太清楚使用的同学可以参考:
1. [mockjs前端开发独立于后端](https://i.jakeyu.top/2016/08/19/mockjs%E8%AE%A9%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91%E4%B8%8D%E4%BE%9D%E8%B5%96%E5%90%8E%E7%AB%AF/)
2. [掘金:easy-mock](https://juejin.im/post/58ff1fae61ff4b0066792f6e)
3. [mock.js那点事](https://juejin.im/post/58f9eec0a22b9d00658ee4b7)
### easy—mock创建数据
因为菜单中每个左侧的分类对应一组数据,在右侧也需要渲染类名,因此简单模拟结构
[{ "title": "这里放左边列表的组名",
"foodsIndex": [{
"name": "这里放每个食物的名字",
"price": "11.0",
"url": "http://imgm.4008823823.com.cn/kfcmwos/img//S/269_116012.jpg"
},
{},{},{}]
你可以尝试自己去扒[肯德基点餐](https://m.4008823823.com.cn/kfcmwos/menu.htm?classId=116),或者用我扒好的[肯德基API](https://www.easy-mock.com/mock/5905d4597a878d73716e2c6b/kfc/kfc)
## 地图API的使用
![](http://xurenjie.cn:3000/img/KFC/KFC2.png)
### [小程序地图初始化](https://www.w3cschool.cn/weixinapp/weixinapp-map.html)
**用toast优化耗时加载**
wx.showToast({
title: '地图加载中',
icon: 'loading',
duration: 0,
mask: true
})
**画图完成后用回调将Toast去除**
```javascript
this.mapCtx = wx.createMapContext('myMap', function () {
wx.hideToast();
})
```
WXML:
```html
<map id="myMap" longitude="{{longitude}}" latitude="{{latitude}}"
style="width: 100%; height: 100%" markers="{{markers}}" covers="{{covers}}" scale="18">
</map>
```
### 腾讯地图API使用-逆地址解析
以搜附近地点渲染至页面列表为例
1. 引入核心类
[腾讯地图小程序版](http://lbs.qq.com/qqmap_wx_jssdk/index.html)下载js并获取key
```javascript
let QQMapWX = require('qqmap-wx-jssdk.min.js');
let demo = new QQMapWX({
key: '5Q2BZ-O3W24-V6DUN-DZ4Z7-H427K-WCB7R' // 必填
});
```
2. 调用API[reverseGeocoder](http://lbs.qq.com/qqmap_wx_jssdk/method-reverseGeocoder.html)
```javascript
demo.reverseGeocoder({
location: {
latitude: _latitude,
longitude: _longitude
},
get_poi: 1,
success: function (res) {
// console.log(res);
},
fail: function (res) {
console.log(res);
},
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
小程序&模版&外卖点餐&外卖平台&KFC-master(源码+截图+源码导入教程和视频).zip (57个子文件)
小程序&模版&外卖点餐&外卖平台&KFC-master(源码+截图+源码导入教程和视频)
源码导入文档教程.docx 182KB
源码导入视频教程.mp4 32.97MB
项目说明.zip 122KB
小程序KFC
pages
card
card.wxml 931B
card.js 2KB
card.wxss 2KB
index
index.wxml 1KB
index.js 1KB
index.wxss 2KB
takeout
message
message.wxss 872B
message.js 3KB
message.wxml 2KB
qqmap-wx-jssdk.min.js 6KB
takeout.js 3KB
takeout.wxml 3KB
takeout.wxss 2KB
order
order.wxml 3KB
order.js 5KB
order.wxss 6KB
halladdress
halladdress.js 3KB
halladdress.wxss 2KB
halladdress.wxml 3KB
menu
menu.wxss 4KB
menu.js 7KB
index.html 1KB
menu.wxml 3KB
logs
logs.json 54B
logs.js 266B
logs.wxml 194B
logs.wxss 106B
KFC
KFC.js 3KB
KFC.wxss 3KB
KFC.wxml 3KB
app.json 1KB
app.js 719B
image
coin.png 5KB
KFC.png 7KB
1.png 6KB
position.png 6KB
takeout_active.png 5KB
KFC_active.png 7KB
cart.png 8KB
takeout.png 4KB
active.png 4KB
sanjiao.png 4KB
confirm.png 6KB
hall_active.png 6KB
order.png 6KB
address.png 5KB
cardbag.png 3KB
kcoin.png 5KB
shopcart.png 4KB
hall.png 6KB
utils
util.js 460B
app.wxss 182B
style
weui.wxss 22KB
README.md 15KB
共 57 条
- 1
资源评论
计算机搬砖艺术家
- 粉丝: 1990
- 资源: 365
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 【年度调薪】年度薪酬预算执行情况报告.xls
- 【年度调薪】调薪考核表.xls
- 【年度调薪】调薪矩阵表(HR总监绝密).xls
- 【年度调薪】度员工调薪登记表.xlsx
- 【年度调薪】薪资等级结构表.xls
- 【年度调薪】调薪调岗流程表格.xls
- 【年度调薪】部门年度薪资调整套级审批表.xlsx
- 【年度调薪】调薪流程.xlsx
- 【年度调薪】年度员工调薪登记表.xlsx
- 【年度调薪】员工调薪评估.xlsx
- 【年度调薪】员工加薪明细表.xlsx
- 【年度调薪】员工调薪记录表.xlsx
- 【年度调薪】HR疑难操作之调岗调薪(实务篇).doc
- 【年度调薪】工资评定调薪方案.doc
- 【年度调薪】年度调薪方案.doc
- 【年度调薪】调岗调薪操作技巧.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功