Open baixiaoji opened 4 years ago
<input value={someValue} onChange={someOnChange} />
相关阅读:
React(JS) 说到底都是有 JS Engine 执行的脚本。但是RN,RN的native code 驱动JS Engine,JS Engine 解析执行 React(DSL) 的 JS代码,然后把计算好的解决返给 Native code,Natvie code 根据结果驱动所有能够驱动的硬件。
RN 利用 React 的 Virtual Dom 和数据驱动编程概念,简化原生应用的开发,同时,他不由浏览器去绘制,只是计算出绘制指令,最终的绘制行为由原生控件复杂,保证了原生的用户体验。
深入 Bridge 前面有提到, RN厉害在于它能打通JS和Native Code, 让JS能够调用丰富的原生接口,充分发挥硬件的能力, 实现非常复杂的效果,同时能保证效率和跨平台性。
Bridge
原生代码负责管理原生模块并生成对应的JS模块信息供JS代码调用。 每个功能JS层的封装主要是针对ReactJS做适配,让原生模块的功能能够更加容易被用ReactJS调用。MessageQueue.js
是Bridge在JS层的代理,所有JS2N和N2JS的调用都会经过MessageQueue.js来转发。 JS和Native之间不存在任何指针传递,所有参数都是字符串传递。 所有的instance都会被在JS和Native两边分别编号,然后做一个映射, 然后那个数字/字符串编号会做为一个查找依据来定位跨界对象。
是JS引擎,专门涉及来解释和执行JS代码。早先是从 KJS & PCRE 正则表达式的基础上开发,基于抽象语法树的解释器。 同类型的JS引擎有 Google V8 和 Mozilla SpiderMonkey。 PS:JSCore 能够在Objective-C中执行JS代码,也可以在JS环境中插入自定义对象。这也是为啥RN中IOS部分会用这个引擎。
这是什么东西?(明白该想project的定义)
为什么要做这个东西?(想想做这个东西的动机)
如何做这个东西?(拆解细节)
回顾(项目过程中的执行、以及心态的变化)