前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >聊一聊小程序框架

聊一聊小程序框架

作者头像
epoos
发布2023-04-01 12:53:46
6130
发布2023-04-01 12:53:46
举报
文章被收录于专栏:epoos.comepoos.com

随着微信小程序的爆火,如今小程序几乎已经取代了传统的 h5 应用,成为了主流。 各大 app 都有自己的小程序,开发规范技术五花八门,作为前端开发者,若想做到在各大应用上都开发自己的小程序需要耗费巨大的精力。 似乎又回到了之前“各大浏览器共存的”兼容时代了。 好在,如今前端“基建”相当完善,大佬们很快就有了解决方案,那就是利用“编译”和“构建”,将同一套业务代码通过语法分析,然后“编译构建”出适配各个平台的小程序。 此类方案很多,我将这些方案称为“小程序开发框架”。

一、小程序开发框架比对

最近花了点时间调研了一下小程序的各个框架。

当前最受欢迎的几个框架比对结果

https://cdn.epoos.com/img/blog/xcxkj.png
https://cdn.epoos.com/img/blog/xcxkj.png

分析

综合上面的比对和分析可以看出:

代码语言:javascript
复制
1.最受欢迎的框架有两个,taro 和 uni-app。
  1)其中taro支持react、vue两大前端开发框架,支持编译为reactNative。
  2)uni-app仅支持vue框架,但是可以编译为原生的ios和android。
2.kbone为官方文档推荐的框架,若已存在h5应用需要转为微信小程序的情况推荐使用此框架。
3.wepy、mpvue、mpx这几个要么年久失修,要么使用人数较少,均不推荐使用。

那么面对新的小程序应用开发选型,我们是否就直接使用tarouni-app呢?

我认为不是。 因为,框架虽好,不可滥用。

框架的问题

了解过小程序的同学应该都知道,小程序本身其实可以看做是特殊的 web 应用。 以微信小程序为例,小程序的每个页面其实就是一个 webview 实例,通过 app 的 jsBridge 与 app 进行通信,可以拥有调用 app 的原生 api 的能力。 小程序的开发语言语法其实就可以看做是定制化的 js、css、html。

也就是说,小程序本身就是对 web 应用的二次封装。 而各大框架又是在小程序开发语法的基础上再一次进行封装。 同时,大部分框架又是基于 vue、react 等前端框架进行的封装。 vue、react应用也需要使用 webpack 等构建工具进行模板语法的构建和打包。

如洋葱一般,一层包一层。 这就导致了一个无法避免的问题,一旦上层框架有升级和更新,下层如果不能实时变更就会产生各种问题。 这是事实,各个框架或多或者都存在这样的问题。 因此,如 taro、uni-app 这两大框架都会有很多热心的开发者随时升级和修正,来保证框架的实时性和稳定性。

然而,谁又能保证他们会一直维护下去? wepy、mpvue 就是很好的例子,就算腾讯这种大厂都没法保证。 一旦框架没有人维护了,使用这些框架开发小程序应用的开发者和公司就会很尴尬了,小程序的新功能无法使用,框架有 bug 也无人修复。 此时只有两个选择,要么选择重构放弃原有框架,要么就只能维持现状缝缝补补,何其伤也!!!。

做过开发的同学都知道,有时候重构的成本甚至比开发一个新的应用成本更大,风险更高。 想当初不就是图省事和节约成本而选择这些框架的吗,这么一折腾,到底图个啥?

因此,小程序“原生”开发技术还是需要考虑的,至少能少套一层不稳定的壳,减少一定的风险。 哪怕前期开发多花费一些精力。

二、小程序原生与框架对比

优点

缺点

使用框架

可以跨端,现成的脚手架

框架摆烂,无人维护风险、实时性低、疑难bug风险、性能比原生低

原生开发

性能优、不会有致命缺陷、只需要按照官方文档开发

不利于跨端开发

三、如何选择?

代码语言:javascript
复制
既然框架有如此大风险,那我们还有必要选择框架吗?

答案是肯定的,要不然这些框架们也不会有那么多支持者。

具体选择需要结合其公司的实际情况和实际业务来考虑。 同时做好调研和风险评估,慎重选择一个稳妥一点的框架是十分重要的。 从社区活跃度、使用人数、兼容平台、公司业务情况、公司开发人员的技能熟练度等多方面来考虑(如上面的taro、uni-app就可以考虑)。

那么,有哪些是可以使用开发框架需要考虑的因素呢?

代码语言:javascript
复制
1.有跨端需求,需要适配的端特别多,如微信、抖音、头条、美团、京东、支付宝、百度等等特别多平台都需要。
2.应用不是特别复杂,没有复杂的交互,比如纯展示的应用。
3.赶时间上线
4.各个端模块功能大同小异,差别不大。
5.短期应用,预计存活时间不长。

有哪些是不可以使用框架需要考虑的因素呢?

代码语言:javascript
复制
1.无跨端需求或者跨端少的,比如只需要微信小程序。
2.应用特别重要,非常注重稳定性,有bug产生的时候会损失巨大的。
3.团队开发者资源充足,公司不缺钱,但是注重应用品质。
4.应用交互复杂,且需要使用原生app的多种能力。
5.各个端功能模块差异较大,需要做大量环境适配。
6.长期应用,可能存在很多很多年。

上面这些因素很多时候往往是重合的,这就需要开发者们自己去权衡利弊了,慎重做出选择

代码语言:javascript
复制
ps:其实本人不太喜欢封装太多的框架,如果二者各有利弊的时候,能用原生开发我只会选择原生。

以上就是本人对于小程序技术选型以及框架的一些思考和总结。

相关链接

Kbone原理解析

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-03-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、小程序开发框架比对
    • 当前最受欢迎的几个框架比对结果
      • 分析
        • 框架的问题
    • 二、小程序原生与框架对比
    • 三、如何选择?
    • 相关链接
    相关产品与服务
    云开发 CloudBase
    云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档