ReactLynx 是 Lynx 的官方 React 框架。它允许你用 React 的心智模型开发 Lynx 原生应用。
和在 Web 上使用 React 一样,使用 ReactLynx 时,你可以使用 JSX 和 React 组件来构建你的 UI。ReactLynx 会将你的 React 代码转换为对 Lynx Engine 命令式 API 的调用,从而实现原生 UI 的渲染。
ReactLynx 本身是“地道”的 React,但也开创性地引入了类似“双线程 React”、“JSX 常量折叠”等优化,
由于和 react
有基本一致的 API,你可以直接将 react
替换为 @lynx-js/react
,然后继续使用你熟悉的 React API。
有关 ReactLynx 实现的 API 的完整列表,请参阅 @lynx-js/react
API 文档。
不同于 Web 上的 div
、span
等元素,Lynx 提供了一套元素标签集合,例如 view
、text
、image
等(完整列表)。
在 ReactLynx 中,你可以组合使用这些元素标签来构建你的原生应用。
虽然元件的命名类似于 React Native,但是 ReactLynx 有一些不同之处:
基于 Lynx,ReactLynx 使用了一套不同于 Web 的事件命名(前往事件了解更多)。
在 Web 上常用的 e.stopPropagation()
、e.preventDefault()
等方法,Lynx 并无完全对应的 API。
但是 Lynx 的事件传播机制仍允许你实现和 Web 上类似的功能或效果。
document
和 window
Lynx 尚未提供 document
和 window
对象,因此 ReactLynx 也不支持这两个对象。
这意味着你无法使用任何依赖于 document
或 window
的库。
一般来说,你可以通过以下两种方式来解决这个差异:
lynx
对象下的 API,以 lynx.reload
替代 window.location.reload()
。磨刀不误砍柴工。