微信小程序实现原理 - Mechanisms

InfoQ:
当时小程序还没发布时,坊间传说小程序使用了类似RN的技术,发布后人们发现它还是运行在WebView里的。
不知道实际情况如何?

王跃:从技术实现的层面来说,不管是小程序,还是RN,或者Weex,都有共同点,比如JS和Native的通讯机制,比如JS直接调用原生组件的渲染,如在iOS平台,小程序和RN都采用JavaScriptCore来执行JS。但是小程序和RN设计初衷和应对的场景不一样,我们知道小程序的场景主要是在当前实际物理场景用户可以即扫即用,用完即走,整个交互都是非常轻量级的,不涉及特别复杂的交互逻辑,所以在设计上考虑尽量简单,首先是系统底层框架简单,其次开发者开发简单,再次用户使用简单,所以小程序大部分的UI组件还是H5的渲染方式,而不是像RN设计成Native的UI组件。

当然小程序本身为了解决部分组件性能的问题也采用了Native的方式,所以方案上的选项主要是基于实际场景考虑,不是纯技术上的考量。

另外准确的说小程序不仅仅运行在Webview里,需要区分不同的部分,这个在我的分享里会有详细的解释。

InfoQ:
刚发布时有人发现小程序的一些代码和Vue的有点像,而单向数据流又让人联想到React。
在当初开发小程序核心框架的时候有哪些思考?

王跃:这个跟问题2类似,首先小程序和Vue,React本质上还是不一样的,小程序是需要特定的Native层支持,同时底层功能也更强大,而Vue和React运行在通用的WebView之上,不需要特定Native支持,但大家为什么觉得会有些类似呢,主要是指在数据绑定,事件绑定等部分的实现上会有一些类似,当然这几种技术没有好坏,主要还是看我们是解决什么场景下的什么问题。

你可能感兴趣的:(微信小程序实现原理 - Mechanisms)