小程序开发与网页开发的区别:
| 小程序开发 | 网页开发 | |
|---|---|---|
| 页面结构 | WXML | HTML |
| 页面样式 | WXSS | CSS |
| 交互响应 | JavaScript | JavaScript |
在小程序开发中建议编写样式时多使用flex布局;支持TypeScript;也可以自行搭建less、sass开发环境
- 网页开发中的渲染线程和脚本线程是互斥的,长时间的脚本运行可能会导致页面失去响应
- 网页开发者可以使用到各种浏览器暴露出来的
DOM API,进行DOM选中和操作
- 在小程序开发中,页面渲染和业务逻辑渲染是分开的,分别运行在不同的线程中
- 逻辑层运行在
JSCore中,并没有一个完整的浏览器对象,因而缺少相关的DOM API和BOM API
-
因此非常熟悉的一些库,例如
jQuery和Zepto等,在小程序中是无法运行的;因为这两个框架都是基于DOM的 -
同时
JSCore的环境同NodeJS环境也是不完全相同的,所以一些npm的包在小程序中也是无法使用的、 -
由于小程序的渲染层和逻辑层是双线程处理的,所以小程序的性能是介于纯网页开发与原生(
native)开发之间
当小程序的运行环境不同的时候,其对应的逻辑层和渲染层所依赖的环境也是不同的:
| 运行环境 | 逻辑层(也就是我们的脚本) | 渲染层 |
|---|---|---|
| iOS | JavaScriptCore | WKWebView |
| Android | V8 | Chromium定制内核 |
| 开发者工具 | NWJS | Chrom WebView |
小程序的四大特性:
- 无需安装
- 触手可及
- 用完即走
- 无需卸载
微信小程序有点像是嵌在微信中的“APP”,但是官方对小程序的安装包(release包)有大小限制,比如目前的限制是不能超过2M,这一点也是为了让用户能够快速的打开小程序;小程序的一些应用场景:不经常使用、但是刚需、不会停留太久的简单工具
小程序开发与APP的区别:
- 安装使用:
小程序:无需安装、无需卸载、简单易用、占用内存较小
APP:需要主动联网下载安装APP,不想用了需要主动卸载
- 开发:
小程序:跨平台、开发门槛低、开发周期短、开发成本低
APP:开发成本高,每一个平台都需要维护一套代码(目前也有ReactNative、Flutter等跨平台方案)
- 发布上线:
小程序:提交到微信公众平台审核
APP:提交到应用商店审核
4、小程序的用户体验、功能复杂度 、开放性不如APP ,其主要做的是一些轻量的东西
目录结构:
小程序主要包括一个描述整体程序的app和多个描述各自页面的page:
- app部分由3个文件组成,必须要放在项目的根目录中,并且文件名是固定的
| 文件 | 必须 | 作用 |
|---|---|---|
| app.js | 是 | 小程序逻辑 |
| app.json | 是 | 全局配置 |
| app.wxss | 否 | 全局公共样式表 |
- 一个页面由4个文件组成(这些文件必须在同一个文件夹下面,并且要具备相同的文件名)
| 文件 | 必须 | 作用 |
|---|---|---|
| js | 是 | 页面逻辑 |
| wxml | 是 | 页面结构 |
| json | 否 | 页面配置 |
| wxss | 否 | 页面样式表 |
尺寸单位:
在网页开发中,我们可能已经习惯用px来作为尺寸大小的单位,但是小程序通常是要在各种各样型号的设备上运行的,这些设备的尺寸有大有小,如果我们还是用像素px来做单位的话,很可能会出现在不同设备上显示比例不协调的问题
- rpx:可以根据屏幕宽度进行自适应,规定屏幕的宽度都是750rpx
- 如在iPhone6上,屏幕宽度为375px,则750rpx=375px=750物理像素,1rpx=0.5px=1物理像素
- 官方建议: 开发小程序时尽量用iPhone6作为视觉稿的标准