小程序简介

更新时间 2024-08-28 09:34:32
收藏
我的收藏
小程序是一种新形式的应用程序,本文主要介绍了开发小程序与开发传统 Web 项目时的区别。​
除此之外,在开发概述章节中,你还会了解到以下内容:​

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

小程序开发的模式与 Web 开发类似,使用 JavaScript 进行开发,使用 CSS 控制样式,最终使用 HTML 进行渲染。但是,我们开发的小程序的 JS 代码,其实是运行在一个被称为“逻辑层”的独立运行环境中(大多数情况下),并且每个小程序有且仅有一个“逻辑层”。​
在 Web 开发中,每个页面中 JS 线程与渲染线程是互斥的;而在小程序中,JS 线程与渲染线程(视图层)是独立的,视图的渲染更新,并不会阻塞 JS 的执行,同时 JS 的逻辑执行,也不会阻塞视图的渲染更新。JS 驱动视图的更新是异步的,并且 JS 无法直接访问视图的 DOM。逻辑层可以通过 api 调用客户端的原生能力,通过 setData 修改视图层的数据,视图层可以通过触发事件调用逻辑层的方法。​
在 Web 端,在用户打开一个页面的时候,我们通常会通过 http/https 协议请求访问网页,而在小程序端,我们会通过特殊协议(如:sslocal://microapp)请求当前 App 调起小程序,开发者的小程序代码会以包的形式下发到打开小程序的当前 App 上,当前 App 会加载本地 JS/XML/CSS 文件打开小程序页面。小程序本身没有域名(并非指 request 请求等访问能力没有域名),所以无法像 Web 开发一样,使用 location 等方式进行页面跳转,也不存在“跨域”。​
由于小程序的 JS 是运行在 JS 引擎中,而非 webview 中,所以没有 DOM/BOM,进而无法使用 window 等浏览器提供的全局变量,所以很多在浏览器中可以运行的 NPM,在小程序中也无法直接使用。​
网页开发中,前端的代码是部署在开发者自己的 CDN 或者自己的服务器上的,对于上传代码等并没有特殊限制。但是在小程序开发中,小程序代码是上传到字节跳动的服务器上统一管理的,下发也是从字节跳动的服务器统一下发的。所以在小程序开发过程中,我们需要借助小程序的开发者工具进行预览上传。预览效果时,我们也需要使用字节跳动的宿主 App 进行查看。对于每一个小程序,我们都需要在字节跳动开发者平台申请账号用于开发与上传。​
在 Web 开发中,我们的运行环境是浏览器,无论是 JS,还是 HTML/CSS,都是运行在浏览器中的。所以,对于我们的 Web 页面,可变的环境是浏览器,我们可能需要处理 Safari/Chrome/Firefox 等 Web 浏览器带来的功能与渲染差异。而当我们开发小程序的时候,也需要处理运行环境的差异,不过小程序的环境差异指的是不同小程序宿主的差异,目前小程序支持的宿主列表如下:​
    抖音​
    抖音是一个帮助大众用户表达自我,记录美好生活的短视频平台。在这里,用户不仅可以了解最新的明星内容和事件,还可以通过各种智能匹配音乐、一键卡点视频、原创特效、滤镜等记录美好生活。​
    今日头条​
    今日头条是一款个性化资讯推荐引擎产品,致力于连接人与信息,让优质、丰富的信息得到高效、精准的分发,为用户创造价值。今日头条提供的信息种类丰富,涵盖科技、娱乐、游戏、体育、财经等方面,为用户提供全方位、多维度的热点新闻资讯。​
    今日头条极速版​
    头条极速版为用户提供个性化专属新闻资讯。头条极速版内存小、省流量、使用流畅,为用户提供有价值、有温度、更新速度快的新闻资讯。及时聚焦热点,用户刷新就能触达最新资讯。​

体验小程序​

下载抖音、今日头条等 App 后,扫描下图二维码即可体验字节小程序。​
下载安装抖音开发者工具,新建「小程序能力展示」模板工程,可使用该小程序源码。​
开发问题互助交流
进群获取0-1开发指南以及平台的最新动态信息,同时可以与开发者同行展开互助交流,有2000+友好的开发者在社群等你一起互助交流,快来加入我们吧!​