开发
API

小程序简介

小程序是一种新形式的应用程序,本文主要介绍了开发小程序与开发传统 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 是运行在 JS 引擎中,而非 webview 中,所以没有 DOM/BOM,进而无法使用 window 等浏览器提供的全局变量,所以很多在浏览器中可以运行的 NPM,在小程序中也无法直接使用。

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

  • 今日头条

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

  • 今日头条极速版

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

体验小程序

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

点击纠错
该文档是否对你的开发有所帮助?
有帮助
没帮助
该文档是否对你的开发有所帮助?
有帮助
没帮助