小程序入门
缘起
我于2022年8月份开始负责一款校园课表查询小程序的线上维护。在这个过程中,我不仅进行了新功能的开发和旧功能的维护,还遇到并解决了许多bug。为了分享我的经验和心得,我将这些问题和总结整理成了这篇专栏,希望能给正在学习小程序的朋友们提供一些参考和启发。
小程序发展
小程序的价值
小程序带来的最大的价值就是它的产品价值, 例如它帮助微信这种超级app构筑了更加完整的生态, 扩充了更多的业务场景
无论什么技术都是为业务服务的, 技术不存在优劣, 只存在是否合适
小程序的特点
- 数量众多(超过app的数量)
- 应用场景广泛
小程序生态
- 围绕大厂app的核心业务开发
小程序与传统Web技术的区别:
- 有固定的语法和统一的版本管理
- 平台能够控制各个入口, 如二维码/文章内嵌/端内分享
- 基于特殊架构, 流畅度更好
小程序三大价值
- 渠道价值: 依托于超级平台, 小程序能够充分为很多场景导流
- 业务探索价值: 相比于原生app, 开发成本低
- 数字升级价值:线下到线上, 轻度消费到大宗消费, 小程序都展现了良好的容错空间
小程序原理
第三方开发应用最简单方便的方式---WebView+JSBridge
问题
- 无网络的情况下体验不佳
- 网页切换体验不佳
- 管控安全无法保证
针对于这三大问题, 微信小程序具有如下三个特点
- 开发门槛低
- HTML+CSS+JS
- 接近原生的使用体验
- 资源加载+渲染+页面切换(每次切换之前保留原先的页面结构)
- 能够保证安全可控
- 独立的JSCore
问题1: 不操作DOM如何渲染页面, 这个问题许多框架都有, 例如React
解决思路为: 只关心数据流, 而不需要操作具体的DOM, 就可以根据数据渲染页面
问题2: 浏览器中, JS操作频繁时我们动画会卡顿, 因为它们是在同一个进程中的
解决思路为: 利用小程序的特殊结构将js和渲染分离, 这样的通信结构, 决定了小程序的性能问题在数据传递