前言
最近在公司做小程序开发,做两个音视频的页面,解决方案使用的是腾讯云提供的trtc-room组件,看了一下组件代码,使用的是原生小程序实现的。公司开发小程序项目居多,wepy、mpvue框架都有项目在使用,加上前公司工作时,开发项目使用过uni-app开发小程序(当然,uni-app还可以打包成移动端app的包,安卓、iOS都可以),感觉开发小程序,总之都是基于原生小程序在搞事情,所以有些东西想实现的话,还是得看看原生是否支持,支持到什么程度,所以即使用诸多框架,还是应该从原生小程序出发,之前感觉小程序开发嘛,代码往上罗就行了,要说不会开发小程序吧,还能写代码,要说会吧,有些东西了解的不是很清楚,所以在解决有些问题的时候,不清楚的地方,解决问题的效率降低,解决问题提出的解决方案也会受限,所以我想决定好好看一遍原生小程序的文档,对于前端开发来说,我觉得把小程序前面四个页签的内容看一遍应该就可以了(指南、框架、组件、API),至于工具(微信开发者工具)的使用,用着用着基本就会了。权当我个人总结。我打算指南,框架部分阅读的时候总结点我自己之前不了解的干货,至于组件和API部分,我觉得我总结的话也是搬砖不如直接看文档来的痛快 。接下来,开始我的Ctrl C V。
微信小程序开发文档:https://developers.weixin.qq.com/miniprogram/dev/framework/
微信公众平台:https://mp.weixin.qq.com/
小程序与普通网页开发的区别
小程序的主要开发语言是JavaScript,小程序的开发同普通的网页开发相比有很大的相似性。对于前端开发者而言,从网页开发迁移到小程序的开发成本并不高,但是二者还是有些许区别的。
网页开发渲染线程和脚本线程是互斥的,这也是为什么长时间的脚本运行可能会导致页面失去响应,而在小程序中,二者是分开的,分别运行在不同的线程中。网页开发者可以使用各种浏览器暴露出来的DOM API进行DOM操作,而小程序的逻辑层和渲染层是分开的,逻辑层运行在JSCore中,并没有一个完整浏览器对象,因此缺少相关的DOM API和BOM API。这一区别导致前端开发非常熟悉的一些库,例如:jQuery、Zepto等,在小程序中无法运行。同时JSCore的环境同NodeJS环境也是不尽相同,所以一些NPM的包在小程序中也是无法运行的。
网页开发者需要面对的环境是各式各样的浏览器,PC端需要面对IE、Chrome、Firefox等。在移动端需要面对的是iOS、安卓系统中各式的webview,而小程序开发过程中需要面对的是两大操作系统的微信客户端,,以及用于辅助开发的小程序开发者工具。
小程序中三大运行环境也是有所区别的,如下所示:
运行环境 | 逻辑层 | 渲染层 |
iOS | JSCore |
WKWebView |
安卓 | V8 |
chromium定制内核 |
小程序开发工具 | NWJS |
Chrome WebView |
网页开发者在开发网页的时候,只需要使用浏览器,并且搭配上一些辅助工具或者编辑器即可。小程序的开发则有所不同,需要经过申请小程序账号、安装小程序开发者工具。配置项目等过程方可完成。
申请账号
在小程序后台(微信公众平台),可以进行你的小程序的权限管理、查看数据报表、发布小程序的操作。在菜单”开发“-”开发设置“中,可以得到小程序的AppID。小程序的AppID相当于小程序平台的一个身份证(在开发者工具中使用)。
未完待续...