微信小程序知识总结及案例集锦
微信小程序知识总结及案例集锦
微信小程序的发展会和微信公众号一样,在某个时间点爆发
学习路径
微信小程序最好的教程肯定是官方的文档啦,点击这里直达 微信官方文档
认真跟着文档看一遍,相信有vue前端经验的看下应该就能上手了,然后安装 微信小程序开发者工具
新建一个quick start项目,了解代码结构,这里附上整个quick start代码。
然后就拿个顺手的api练练手,这里附上cnode代码,跟着做完差不多就算入门了。
入门之后就是看其他项目的实现了,这里会附上案例集锦,一些github的案例。
知识总结
tip:看到了另一份W3CSchool整理的文档,可以结合官方文档一起看
目录结构介绍
- app.js — 对本页面的窗口表现进行配置。
- app.json — 对微信小程序进行全局配置,决定页面文件的路径、窗口表现、设置网络超时时间、设置多 tab 等。
- app.wxss — 接受一个数组,每一项都是字符串,来指定小程序由哪些页面组成。
页面生命周期
- 小程序注册完成后,加载页面,触发onLoad方法。
- 页面载入后触发onShow方法,显示页面。
- 首次显示页面,会触发onReady方法,渲染页面元素和样式,一个页面只会调用一次。
- 当小程序后台运行或跳转到其他页面时,触发onHide方法。
- 当小程序有后台进入到前台运行或重新进入页面时,触发onShow方法。
- 当使用重定向方法wx.redirectTo(OBJECT)或关闭当前页返回上一页wx.navigateBack(),触发onUnload
常规页面A:onLoad()-->onShow()-->onReady()-->onHide()-->onUnload()
释义:
- onLoad():监听页面加载,一个页面只会调用一次
- onShow():监听页面显示,每次打开页面都会调用一次
- onReady():监听页面初次渲染完成,一个页面只会调用一次,代表页面加载完毕,视图层和逻辑层可进行交互
- onHide():监听页面隐藏,当页面被覆盖或进入后台执行
- onUnload():监听页面卸载,当页面被关闭或内存不足主动销毁页面
wx.navigateTo跳转状态下,页面A和页面B的生命周期逻辑
- 进入A页面:A执行onLoad()-->onShow()-->onReady();
- A页面navigateTo B页面:A执行onHide(),B执行onLoad()-->onShow()-->onReady();
- B页面返回A页面:B执行onUnload(),A执行onReady();
- 退出A页面:A执行onUnload()。
Page({
data:{},
onLoad:function(options){
// 页面初始化 options为页面跳转所带来的参数
},
onReady:function(){
// 页面渲染完成
},
onShow:function(){
// 页面显示
},
onHide:function(){
// 页面隐藏
},
onUnload:function(){
// 页面关闭
}
})

组件
- 基本:view,text
- 表单:button,input,radio,slider
- 媒体:image,video,audio,canvas
- 模态:action-sheet,modal,toast,loading
- 容器:swiper,scroller
- 导航:navigator,tabbar
小程序开发踩坑记录
基本的防踩坑Q&A
最佳防踩坑的方式就是看这个微信小程序常见FAQ
好友坑过的开发者社区已解决问题
小程序页面空白
- css兼容性问webkit内核
- lineShopId长度太长,字符转数字Number
- post请求参数加上encodeURIComponent解析字符串
header要设置正确
- get "content-type":'application/json'
- post "content-type":'application/x-www-form-urlencoded'
- content-Type:application/x-www-form-urlencoded,application/json
bind事件绑定不会阻止冒泡事件向上冒泡,catch事件绑定可以阻止冒泡事件向上冒泡
image背景图片地址必须是url或者base64/本地资源无法通过 css 获取 可以使用网络图片,或者 base64,或者使用 标签
使用竖向滚动时,需要给scroll-view一个固定高度,通过 WXSS 设置 height。如果scroll-view高度设置为100%,则不能触发上拉刷新和下拉加载事件......
App() 小程序注册入口,全局唯一。App()用来注册一个小程序,全局只有一个,全局的数据也可以放到这里面来操作。
// 注册微信小程序,全局只有一个
let appConfig = {
// 小程序生命周期的各个阶段
onLaunch: function(){},
onShow: function(){},
onHide: function(){},
onError: function(){}, // 自定义函数或者属性
...
};
App(appConfig); // 在别的地方可以获取这个全局唯一的小程序实例
const app = getApp();
小程序并没有提供销毁的方式,所以只有当小程序进入后台一定时间、或者系统资源占用过高的时候,才会被真正的销毁。
Page() 页面注册入口。Page()用来注册一个页面,维护该页面的生命周期以及数据。
// 注册微信小程序,全局只有一个
let pageConfig = {
data: {},
// 页面生命周期的各个阶段
onLoad: function(){},
onShow: function(){},
onReady: function(){},
onHide: function(){},
onUnload: function(){},
onPullDownRefresh: function(){},
onReachBottom: function(){},
onShareAppMessage: function(){}, // 自定义函数或者属性
...
};
Page(pageConfig); // 获取页面堆栈,表示历史访问过的页面,最后一个元素为当前页面
const page = getCurrentPages();
{{}} 不能执行方法,只能处理简单的运算如 “+ - * /”,比如遇到遍历list,每个item的金额需要格式化,只能在js里预先格式化好再setData一遍( ╯□╰ )
数字键盘用 type="digit"
禁止页面下拉需要设置 "disableScroll": true
案例集锦
tip:从案例里可以看到很多其他小程序实现的方式,多多看代码
官方demo★★★★★ 官方demo可以看看布局啥的,实现啥的
https://mp.weixin.qq.com/debug/wxadoc/dev/demo.html官方quick start★★★★★ 官方的小程序,可以自己改动看看效果
https://github.com/junhey/wxapp/tree/master/quickStartcnodejs ★★★★ 自己做的第一款小程序,基本上覆盖小程序的基本操作,推荐通过cnodejs的api来实践开发小程序
https://github.com/junhey/wxapp-cnode石头剪刀布★★★★ 腾讯云团队出品,里面有websocket的使用
https://github.com/CFETeam/weapp-demo-websocketv2ex ★★★
https://github.com/liuyugang123/V2EX精简版百思不得姐 ★★★
https://github.com/shuncaigao/BS空气质量查询 ★★★
http://blog.csdn.net/yulianlin/article/details/52692066github客户端 ★★★
https://blog.zhengxiaowai.cc/post/weapp-demo.html
更多
持续踩坑中...
后续会进行不断更新,订阅请点watch,收藏请点star,欢迎开issues来提问
微信小程序知识总结及案例集锦的更多相关文章
- 微信小程序手势滑动卡片案例
最近工作中有项目要使用微信小程序技术进行开发,其中一项功能困扰了我很久,卡片滑动动效以及手势识别.经过一番研究和参考,现在把成果展示.记录自己踩到的坑,如果大家有需要,也可以帮助到大家. 效果图: 首 ...
- 【原创】微信小程序支付java后台案例(公众号支付同适用)(签名错误问题)
前言 1.微信小程序支付官方接口文档:[点击查看微信开放平台api开发文档]2.遇到的坑:预支付统一下单签名结果返回[签名错误]失败,建议用官方[签名验证工具]检查签名是否存在问题.3.遇到的坑:签名 ...
- 微信小程序知识云开发
一个小程序最多5个服务类目,一个月可以修改3次类目 小程序侵权投诉的发起与应对 软件著作权作品登记证书 实现小程序支付功能 如何借助官方支付api简单.高效率地实现小程序支付功能 借助小程序云开发实现 ...
- 微信小程序wx.previewImage实用案例(交流QQ群:604788754)
本案例是可以滑动预览多张图片效果.(本案例在本地配置好之后,请扫描二维码到手机滑动预览.在开发者工具上预览,滑动不是很流畅) 图片必须选择远程图片,本地图片无法实现预览. 或是通过wx.chooseI ...
- 微信小程序知识集锦
1.自定义属性/获取属性值 自定义属性: <view bindtap='shopPost' data-myid='item.goods_id' ></view> 获取属性: s ...
- 微信小程序 教程及示例
作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有,转载请联系作者获得授权.微信小程序正式公测, ...
- 这是一篇满载真诚的微信小程序开发干货
1月9日零点刚过,张小龙与团队正式发布微信小程序.它究竟能在微信8.5亿用户中牵动多少人,现在还很难说.但对于创业者来讲,小程序无疑带来了新契机,以及服务“上帝”们的新方式. 从今天起,只要开发者登录 ...
- WordPress版微信小程序安装使用说明
昨天在群里,有刚刚使用WordPress版微信小程序朋友,在问安装过程中的问题,这些问题是经常被问到,这至少说明两个问题: 1.我开发的程序安装和使用不够简易,无法通过简单的配置就可以使用,特别是如果 ...
- 我的微信小程序第三篇(app.json)
前言 端午节回家了,所以好多天没有更新,只想说还是待在家里舒服呀,妈妈各种做好吃的,小侄子侄女各种粘着我在室外玩,导致我三天下来不仅胖了一圈,还黑了一圈,上班第一天有同事就说我晒黑了,哭~~~,为了防 ...
随机推荐
- win7电脑关机时间长怎么办
最近遇到电脑关机慢的问题,其实电脑是装了ssd的,而且关掉了许多不需要的软件服务,为什么还是会出现关机慢的问题呢?开机是很快的. 所以我做了以下尝试: 1 win + r 运行 regedit 注册表 ...
- OpenCV探索之路(九):模板匹配
模板匹配的作用在图像识别领域作用可大了.那什么是模板匹配? 模板匹配,就是在一幅图像中寻找另一幅模板图像最匹配(也就是最相似)的部分的技术. 说的有点抽象,下面给个例子说明就很明白了. 在上面这幅全明 ...
- 从 art-template 模版维护到动态加载的思考
自己用 art-template 有些年头了,最近在培养团队学习 art-template 使用,发现有一个痛点比较难解决. 比如有一个模版,我们可以直接写在页面中,像这样: <script i ...
- TCP协议随笔
传输控制协议TCP是面向连接.保证高可靠性(数据无丢失.数据无失序.数据无错误.数据无重复到达)传输层协议.TCP/IP结构对应OSITCP/IP ...
- 1.Java 加解密技术系列之 BASE64
Java 加解密技术系列之 BASE64 序号 背景 正文 总结 序 这段时间,工作中 用到了 Java 的加解密技术,本着学习的态度,打算从这篇文章开始,详细的研究一番 Java 在加解密技术上有什 ...
- Linux Namespaces机制
转自:http://www.cnblogs.com/lisperl/archive/2012/05/03/2480316.html Linux Namespaces机制提供一种资源隔离方案.PID,I ...
- kafka 0.8.2 消息生产者 KafkaProducer
package com.hashleaf.kafka; import java.util.Properties; import java.util.concurrent.ExecutorService ...
- .net Core1.0 邮件发送
今天一天早,公司需要将之前的.net Core项目增加一个预处理机制,就是当程序出现异常后给我们的开发人员发送邮件,因为今天写些关于.netCore上发送邮件. 根据查阅资料发现在目前的Core1.0 ...
- 【JAVAEE学习笔记】hibernate02:实体规则、对象状态、缓存、事务、批量查询和实现客户列表显示
一.hibernate中的实体规则 实体类创建的注意事项 1.持久化类提供无参数构造 2.成员变量私有,提供共有get/set方法访问.需提供属性 3.持久化类中的属性,应尽量使用包装类型 4.持久化 ...
- Nodejs-express 4.0框架 简单介绍
http://www.expressjs.com.cn/4x/api.html 这个是express API的中文手册 但是只是翻译了一点 英语比较差比较难受. 1. 关于安装 现在网上查的时候有一 ...