深入解析小程序编译的工作原理与实现机制

小程序的优势与挑战

  对于已经接触过小程序的同学来说,这篇文章希望能带给你更深入的认识,同时也为那些正在深入学习小程序的同学提供一些新的思路。

小程序的崛起

  过去,中小企业或技术团队在应时,时间成本和人力成本一直居高不下。但随着微信小程序的推出,这一局面得到了极大的改善。小程序的出现,为这些企业打开了一扇天窗,随后,支付宝、百度、抖音等超级平台也纷纷跟进,推出了自己的小程序平台。

小程序快速发展的三大原因

  小程序之所以能够快速发展,主要有以下三个原因:

  1. 降低门槛:过去,中小企业应用的门槛较高,耗时耗力,还可能出现各种体验不佳的问题。而小程序的推出,大大降低了难度。
  2. 用户生态不完整:原有的端用户生态并不完整,在端做业务的收益越来越小。小程序的出现,弥补了这一不足。
  3. 流量平台红利:小程序背靠微信、支付宝等流量平台,可以快速低成本地获得用户。

小程序的六大优势

  如果概括地讲,小程序的优势可以分为以下几个小点:

  • 获客成本低:挂靠微信/支付宝等超级平台,让超级平台的用户成为自己的用户。
  • 用户访问成本低:通过扫一扫、附近的小程序、分享、搜索等即可直接访问。
  • 更轻量触达:不必再记住网址,不必下载应用,点击直达。
  • 用户体验更好:功能几乎和原生应用一样全面,包括支付、地理位置等,远超H5的体验。
  • 用户负担更小:一个账走天下,减轻个人负担,包括账、会员、线上、线下。
  • 更安全:安全无需自己维护,由超级平台直接负责。
  • 小程序的难点

      尽管小程序有诸多优势,但对于中小企业来说,小程序仍然存在一些难点。例如,架构、规则、文档等,对于者来说可能都是陌生事物。

    小程序的编译原理

      微信者工具和微信客户端都无法直接运行小程序的源码,因此我们需要对小程序的代码进行编译。更通俗地讲,可以理解为:小程序编译更像是一个翻译器,把小程序源码翻译为微信客户端和工具可以读懂的语言,以便能够明白小程序想要表达和实现的效果。

      代码编译过程包括本地预处理、本地编译和服务器编译。为了快速预览,微信者工具模拟器运行的代码只经过本地预处理、本地编译,没有服务器编译过程,而微信客户端运行的代码是额外经过服务器编译的。

    小程序的框架

      小程序是基于W3C规范,采用WXML、WXSS和JavaScript等搭建的一套框架。微信官方给它们取了一个很厉害的名字:WXML、WXSS,但本质上还是在整个Web体系之下构建的。

    WXML与WXSS

  • WXML:是框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构。
  • WXSS:是一套样式语言,用于描述WXML的组件样式。WXSS用来决定WXML的组件应该怎么显示。WXSS具有CSS大部分特性。同时为了更适合微信小程序,WXSS对CSS进行了扩充以及修改,更通俗地可以理解成基于CSS改了点东西,又加了点东西。
  • 小程序的编译工具

      小程序的框架包含两部分:视图层、逻辑层。视图层用来渲染页面结构,逻辑层用来逻辑处理、数据请求、接口调用,它们在两个进程里运行。

      WXML并不可以直接执行在视图层进行渲染,而是通过了一层编译工具。编译的工具名字叫WCC,这个编译的过程是在微信者工具端执行的。

    编译过程

      在微信者工具的控制台界面,输入wcc()命令可见如所示界面。如果wcc()函数执行后无效果或者报错,请检查下方位置是否为WCC选项卡。

      可以看到这里有一些命令,继续在控制台执行第八条wcc()命令。这时候弹出了一个名为WCC的文件夹,可以看到最后一个文件名称正是我们要寻找的WCC。文件种类是可执行文件。WCC正是用这个工具来编译的。

      我们找到了WCC编译工具后,把这个工具到项目的/wcc目录下,与.wxml同目录。在执行编译前,先看一下.wxml内部结构是怎样的。

      看完内部结构后,把终端目录打开到/wcc目录中。执行:

      $ wcc -o .wxml .wxss

      这时候可以看到目录中多了一个.wxss文件。

      .wxss文件就是WXML文件编译后的文件,.wxss文件会先通过WCC可执行程序文件编译成WXSS文件。并不是直接编译成WXSS文件。

    其他平台的小程序

      当然,支付宝小程序、百度小程序、抖音小程序等原理都大同小异,只不过官方起名换了一种叫法,例如支付宝小程序将WXML、WXSS分别称为AXML、ACSS,抖音小程序分别叫做TTML、TTSS。

    小程序的利用价值

      说到小程序者如何提升其利用价值,其实上一篇文章有讲到。在各个巨头推出自己的小程序开放平台后,微信、支付宝也逐渐将自己的小程序运行能力作为一个付费服务开放给者和第三方企业。

      这种「原生应用 + 小程序」的混合模式其实非常适合现已经有原生应用的企业。一是优质的体验已经成为用户决定是否打开的重要因素;二是低成本的和跨端,能够避免iOS、Android重复;三是小程序管理后台直接上架下的方式相当于让应用具备了热更新能力,规避了应用商店上架审核的流程。

      例如,某企业在集成小程序后便使得自己的原生应用具备小程序运行能力,配合小程序管理后台能够实现全生命周期的管理,不管是上下架、授权、使用数据都能实现低门槛使用,而免费的社区版也基本上能够满足一般企业的使用规模。

    © 版权声明
    THE END
    分享