ReactNative

跨平台框架 ReactNative Weex 原理

2021-01-19  本文已影响0人  快感的感知

讲跨平台框架之前,了解JavaScriptCore 和 V8 会有帮助,也是必要的。React Native的核心驱动力就来自于JS Engine. 你写的所有JS和JSX代码都会被JS Engine来执行, 没有JS Engine的参与,你是无法享受ReactJS给原生应用开发带来的便利的。在iOS上,默认的就是JavaScriptCore, iOS 7之后的设备都支持. iOS 不允许用自己的JS Engine. JavaScriptCore来自于WebKit, 所以,安卓上默认也是用JavaScriptCore

你深入了解React Native的第一站应该是 JavaScriptCore Weex则是V8


image

Android Bridge和IOS Bridge

Android Bridge和IOS Bridge的关键就是js引擎JSCore或V8, 负责JS代码解释执行,然后利用引擎强大的DOM操作管理能力来管理所有UI节点,每次刷新前把所有节点信息更新完毕以后再给yoga做排版,然后再调用原生组件来绘制。所以JSCore或V8是连接js和安卓原生Java语言(或苹果原生oc)重要的桥。有了他们可以让js和原生语言相互高效的通讯。

JSCore或V8

简单点讲,JSCore或V8就是js引擎,因为Android和iOS不能直接运行js,通过js引擎运行js,然后通过JS-NATIVE通信(V8这里采用j2v8方案)

JSCore是WebKit默认内嵌的JS引擎,之所以说是默认内嵌,是因为很多基于WebKit分支开发的浏览器引擎都开发了自家的JS引擎,其中最出名的就是Chrome的V8。这些JS引擎的使命都相同,那就是解释执行JS脚本。而从上面的渲染流程图我们可以看到,JS和DOM树之间存在着互相关联,这是因为浏览器中的JS脚本最主要的功能就是操作DOM树,并与之交互

YOGA(Flex引擎)

上一篇下一篇

猜你喜欢

热点阅读