小程序简介

小程序是一种新形式的应用程序,本文主要介绍了开发小程序与开发传统 Web 项目时的区别。

开发小程序与开发 Web 的区别

小程序开发的模式与 web 开发类似,使用 javascript 进行开发,使用 css 控制样式,最终渲染使用 html 进行渲染 但是,我们开发的小程序的 js,是运行在一个称为“逻辑层”的独立运行环境中(大多数情况下),每个小程序有且仅有一个“逻辑层”。

在 web 开发中,我们每个页面中 js 线程与渲染线程是互斥的,在小程序中,js 的运行进程与渲染进程(视图层)是独立的,视图的渲染更新,并不会阻塞 js 的执行,js 的逻辑执行,也不会阻塞视图的渲染更新,这里就要注意我们的第一个问题:js 驱动视图的更新是异步的,而且 js 无法直接访问视图的 DOM。

在 web 开发中,我们的运行环境是浏览器,无论是 js,还是 html/css,都是运行在浏览器中的。所以,对于我们的 web 页面,可变的环境是浏览器,我们可能需要处理 safari/chrome/firefox 等 web 浏览器带来的功能与渲染差异。当我们开发小程序的时候,也需要处理运行环境的差异,不过小程序的环境差异指的是不同小程序的宿主与不同操作系统间的宿主的差异,目前小程序支持的宿主列表如下:

  • 今日头条

今日头条是一款个性化资讯推荐引擎产品,致力于连接人与信息,让优质、丰富的信息得到高效、精准的分发,为用户创造价值。今日头条提供的信息种类丰富,涵盖科技、娱乐、游戏、体育、财经等方面,为用户提供全方位、多维度的热点新闻资讯。

  • 今日头条极速版

头条极速版为用户提供个性化专属新闻资讯。头条极速版内存小、省流量、使用流畅,为用户提供有价值、有温度、更新速度快的新闻资讯。及时聚焦热点,用户刷新就能触达最新资讯。

  • 抖音

抖音是一个帮助大众用户表达自我,记录美好生活的短视频平台。在这里,用户不仅可以了解最新的明星内容和事件,还可以通过各种智能匹配音乐、一键卡点视频 原创特效、滤镜等记录美好生活。

web 开发中,在用户打开一个页面的时候,我们通常会通过一个 http 地址来加载并访问一张远程页面,而在小程序中,通过协议(如:sslocal://microapp)调起小程序后,小程序会以包的形式下发到打开小程序的当前 App 上,并且装载本地 js/xml/css 文件打开小程序。所以,小程序本身没有域名(并非指 request 请求等访问能力没有域名),所以无法像 web 开发一样,使用 location 等方式进行页面跳转,也不存在“跨域”。

由于小程序的 js 是运行在 jscore 中的,而非 webview 中,所以没有 DOM/BOM,进而无法使用 window 等浏览器提供的全局变量,所以很多在浏览器中可以运行的 NPM,在小程序中也无法直接使用。

网页开发中,前端的代码是部署在开发者自己的 CDN 或者自己的服务器上的,对于上传代码等并没有特殊限制,但是小程序的代码包上传,是上传到字节跳动的服务器上统一管理的,下发也是从字节跳动的服务器统一下发的,所以,开发过程中,需要借助小程序的工具进行预览上传,预览效果时,也需要使用字节跳动的宿主 App 进行查看,对于每一个小程序,需要在字节跳动开发者平台申请账号用于开发与上传。

体验小程序

下载今日头条、抖音等 App 后,扫描下图二维码即可体验字节小程序。

图片名称

点击纠错