We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
微信小程序出来也有一段时间了,之前也陆续做过demo练练手,毕竟自己的demo还是比较简单的,如今参与公司的项目也是一路踩坑而来。
首先,小程序类Web,但不同于我所认识的HTML,他有属于自己的开发语言及工具:
小程序主要包含以下三个入口文件:
getApp()
require
import
本次项目只负责了首页、授权和一些公共模块的开发,接下来就着重从这些模块展开。
当然,微信小程序和其他前端框架类似也是有生命周期的:
Page({ /** * 页面的初始数据 */ data: {}, /** * 生命周期函数--监听页面加载(像首页数据请求可以放在这里) */ onLoad: function (options) {}, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () {}, /** * 生命周期函数--监听页面显示 */ onShow: function () {}, /** * 生命周期函数--监听页面隐藏 */ onHide: function () {}, /** * 生命周期函数--监听页面卸载 */ onUnload: function () {}, /** * 页面相关事件处理函数--监听用户下拉动作(这里添加了下拉刷新的功能) */ onPullDownRefresh: function () {}, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () {}, /** * 用户点击右上角分享 */ onShareAppMessage: function () {} })
当我们在data中初始化的值需要修改时,可在各生命周期及方法中通过setData()修改。由于小程序的入口页面就是首页,在首页添加了用户登陆和网络状态的检测在onLoad中。
data
setData()
onLoad
tabBar即小程序的底部导航栏,由于微信的限制,最少2个最多5个导航栏,只可设置文案、图标。
小程序样式采用WXSS语言(具有CSS大部分特性)。他也提供了一种新的单位rpx(可根据屏幕宽度自行适应)。官方规定屏幕宽为750rpx。如在 iPhone6 上,屏幕宽度为375px,共有750个物理像素,则750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素,既然这样我们也推荐了我们设计师采用iPhone6作为设计标准,即750px宽度。
但是在实际的开发过程中如果字体大小也使用rpx做单位的话,在iPhone6 Puls上显示文字过大,影响美观。后经过测试采用了px做单位,即原设计稿尺寸的一半+px,这样可以保证文字大小在各设备中保持一致。
在官方文档上有明确规定,本地资源是无法通过CSS获取的,图片的话只能使用网络资源或base64方式。首页有个需要判断网络状态的需求,由于断网情况下无法获取网络资源,最后就使用了base64的方式。
官方获取网络状态的API是getNetworkType为异步接口,通过它的返回结果再进行下一步(是显示无网络还是调用数据列表接口),说到这里大家都知该怎么办了——Promise,具体封装如下
getNetworkType
Promise
new Promise((resolve, reject) => { let req = wx.getNetworkType({ success: function (res) { var networkType = res.networkType; if (networkType === 'none') { resolve(false) } else { resolve(true) } }, fail() { reject(false) } }); })
调试的时候最大的问题呢是:无论是开发者工具上还是手机上,记得先把缓存删干净再测。特别是开发者工具每次切换host都要清理缓存,再重新打开,而且出现bug的时候尽量多测几次,进行反复确定。不然的话,你可能会发现,本来测好的功能又出现问题了,或者是本来有问题的部分又没有问题了。
开发者工具调试界面和Chorem浏览的开发者工具类似,调试工具分为 7 大功能模块:Wxml、Console、Sources、Network、Appdata、Storage、Sensor、Trace。
在开发环境下手机调试需要满足以下条件:
虽然 期已经成功发布,但是还有些需要修改个优化的地 ,需要添加及开发的新功能还可能很多,遇到的坑可能也只是冰山一角,有些坑只有去踩过才知道有多深。
The text was updated successfully, but these errors were encountered:
No branches or pull requests
微信小程序出来也有一段时间了,之前也陆续做过demo练练手,毕竟自己的demo还是比较简单的,如今参与公司的项目也是一路踩坑而来。
认识小程序
语言及开发工具
首先,小程序类Web,但不同于我所认识的HTML,他有属于自己的开发语言及工具:
入口文件
小程序主要包含以下三个入口文件:
getApp()
调用(注:页面中调用app.js中的方法时不需要通过require
或者import
引入)项目开发
本次项目只负责了首页、授权和一些公共模块的开发,接下来就着重从这些模块展开。
生命周期
当然,微信小程序和其他前端框架类似也是有生命周期的:
当我们在
data
中初始化的值需要修改时,可在各生命周期及方法中通过setData()
修改。由于小程序的入口页面就是首页,在首页添加了用户登陆和网络状态的检测在onLoad
中。tabBar
tabBar即小程序的底部导航栏,由于微信的限制,最少2个最多5个导航栏,只可设置文案、图标。
样式
小程序样式采用WXSS语言(具有CSS大部分特性)。他也提供了一种新的单位rpx(可根据屏幕宽度自行适应)。官方规定屏幕宽为750rpx。如在 iPhone6 上,屏幕宽度为375px,共有750个物理像素,则750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素,既然这样我们也推荐了我们设计师采用iPhone6作为设计标准,即750px宽度。
但是在实际的开发过程中如果字体大小也使用rpx做单位的话,在iPhone6 Puls上显示文字过大,影响美观。后经过测试采用了px做单位,即原设计稿尺寸的一半+px,这样可以保证文字大小在各设备中保持一致。
网络状态
在官方文档上有明确规定,本地资源是无法通过CSS获取的,图片的话只能使用网络资源或base64方式。首页有个需要判断网络状态的需求,由于断网情况下无法获取网络资源,最后就使用了base64的方式。
官方获取网络状态的API是
getNetworkType
为异步接口,通过它的返回结果再进行下一步(是显示无网络还是调用数据列表接口),说到这里大家都知该怎么办了——Promise
,具体封装如下调试
调试的时候最大的问题呢是:无论是开发者工具上还是手机上,记得先把缓存删干净再测。特别是开发者工具每次切换host都要清理缓存,再重新打开,而且出现bug的时候尽量多测几次,进行反复确定。不然的话,你可能会发现,本来测好的功能又出现问题了,或者是本来有问题的部分又没有问题了。
开发者工具
开发者工具调试界面和Chorem浏览的开发者工具类似,调试工具分为 7 大功能模块:Wxml、Console、Sources、Network、Appdata、Storage、Sensor、Trace。
真机调试
在开发环境下手机调试需要满足以下条件:
些题外话
虽然 期已经成功发布,但是还有些需要修改个优化的地 ,需要添加及开发的新功能还可能很多,遇到的坑可能也只是冰山一角,有些坑只有去踩过才知道有多深。
The text was updated successfully, but these errors were encountered: