当前位置:网站首页 > React.js开发 > 正文

reactJS精通(react all in js)



React Native使用JavaScript来实现UI,新架构使用的jsi来实现C/C++和JavaScript之间的互相调用,而jsi是使用JS引擎提供的api能力来实现的,如果看过前面TurboModule的介绍,应该对JSI有一些概念了,这一节我们会更加进一步去介绍JSI的实现,其实JSI的逻辑是很简单的,只不过因为有非常多的数据类型,所以有许多的业务逻辑。

JSI定义了一个Runtime作为接口,不同的JS引擎都需要实现这个Runtime,JavaScriptCore的实现是JSCRuntime,而Hermes的实现是HermesRuntime,HermesRuntime的源码没有放在RN里,我们只要知道这个Runtime的实现类里就是通过JS引擎提供的api来实现Runtime定义的接口功能,这里就可以解决JSI接口固定,但是底层使用不同的JS引擎的情况。
我们来看看Runtime定义的一些接口。
这里提供了大量接口,执行JavaScript代码,创建JS对象,获得或者配置JS对象的属性,数据类型的转换等等,根据不同的JS引擎提供的api来实现这些方法,然后JSI就是基于这些接口来做封装。

 
  
 
  

再来看看TurboModule是怎么实现这几个方法。

先看看get方法:

 
  
 
  

再来看看getPropertyNames,这个很简单,只要把methodMap_的所有key都收集起来返回就可以了。

 
  

TurboModule并没有实现set方法,因为这些方法不应该在JS可以修改,所以这里就没有实现。

本节介绍了jsi::Runtime的定义的一些接口,然后以TurboModule为例介绍了JSI应该如何使用,总体来说还是比较简单的,下一节我们再来看一下Fabric渲染器和Fabric组件

到此这篇reactJS精通(react all in js)的文章就介绍到这了,更多相关内容请继续浏览下面的相关 推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • reactjs教程(react最新教程)2025-10-24 08:54:09
  • reactJS入门(react入门视频教程)2025-10-24 08:54:09
  • reactJS组件(react 常用组件库)2025-10-24 08:54:09
  • react js 教程(react 入门教程)2025-10-24 08:54:09
  • reactJS组件(reactui组件)2025-10-24 08:54:09
  • reactJS入门(react基础入门)2025-10-24 08:54:09
  • reactjs教程(reactjs.net)2025-10-24 08:54:09
  • reactJS入门(react .js)2025-10-24 08:54:09
  • react 入门教程(react基础教程)2025-10-24 08:54:09
  • react基础入门(react教程,看这篇就够了)2025-10-24 08:54:09
  • 全屏图片