Preact
通过一个轻量的 preact/compat Preact 层实现 100% 兼容 React。
Preact 与 react 区别(更倾向于原生)
- 合成事件系统区别:
- react 与 React 的主要差别是 Preact 并没有实现一个为了大小和性能而去实现合成事件系统(synthetic event system)。
- Preact 是使用浏览器标准 addEventListener 去注册事件函数,这意味着 Preact 中的事件名称和行为都是和原生 JavaScript/ DOM 行为一致的。
- 参考 MDN's Event Reference 来了解所有的 DOM 事件句柄.
- 标准浏览器事件的工作方式与 React 中事件的工作方式非常相似,但有一些细微的差别。在 Preact 中:
- 事件不会冒泡到
<Portal>
组件 - 在表单输入中时应当使用标准的 onInput 来代替 React 的 onChange (仅当不使用 preact/compat 的时候)
- 应当用 onDblClick 来代替 React 的 onDoubleClick (仅当不使用 preact/compat 的时候)
<input type="search">
应当使用 onSearch,因为在 IE11 上 "x" 按钮并不支持 onInput
- 事件不会冒泡到
- 另一个显著的区别是 Preact 更严格地遵循 DOM 规范。支持像任何其他元素一样的自定义元素,并且支持区分大小写的自定义事件名称(就像它们在 DOM 中一样)。
其他独有
- es6
- Component.render() 中的参数
- 原始 HTML attribute/property 名称
- Preact 按原样应用 SVG 属性
- 使用 onInput 而不是 onChange ...