11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

React 的替代方案 Inferno 发布 1.0 版本

  • 2017-01-15
  • 本文字数:1118 字

    阅读完需:约 4 分钟

类似于 React 的 JavaScript 库 Inferno 发布了 1.0 版本,对于那些熟悉 React,但对现代化 JavaScript 库的大小感到沮丧的开发人员提供了一个新的可选方案。

Inferno 的口号是“用于构建现代用户界面的、超快的类 React JavaScript 库”。它的目标用户是那些喜欢 React 的理念和 API,但是并不需要其辅助功能(比如使用 React Native 的能力)的开发人员。Inferno 是严格针对浏览器或服务器以及典型 DOM 构建的。在网络传输方面,Inferno 的大小是 9 KB ,而 React 的大小是 45 KB(两者均为 gzip 的文件大小)。这样的话,在移动设备上,就会有更短的解析时间,因此,性能也会更好。

该团队花费了很多的时间在实际的性能提升上。在一个采访中,这个库的创建者 Dominic Gannaway 提到了在性能方面所开展的工作:

进行广泛的检查,确保反优化(deoptimisations,“deopts”,指的是 JIT 编译器无法编译的地方)的内容达到最小化。Inferno 团队采用了基准测试、探测工具(IRHydra、Chrome Dev Tools),并对代码库的各个部分进行了很多的重写,只是为了持续地寻找移除 deopts 的方法。

Inferno 的代码非常类似于 React,如下的代码展现了这一点:

复制代码
class MyInfernoTest extends Component {
componentDidMount() {
setInterval(() => {
this.setState({
time: (new Date()).toLocaleString()
});
}, 200);
}
render() {
return <h2>
Current time: <span>{this.state.time}</span>
</h2>
}
}

宣布版本发布的文章中,核心团队的工程师 Luke Sheard 指出,2016 年,在 Github 上,该项目的 star 数量已经从 150 个攀升到年底的近 7300 个。目前它已经超过了 8000 个。尽管因为性能的提升,Inferno 特定的代码需要一些变更,但是通过恰当的兼容性库,它可以作为替换 React 的一个很好的方案。

今年,团队希望扩展框架的生态系统,但是还需要 Gannaway 在各个方面的指导。在 2016 年底,Gannaway宣布加入了 Facebook,从事 React 的工作。Sheard 说虽然 Gannaway 的作用会减少,但 Inferno 将会继续发展,他们会继续关注如何提升该库的核心体验和所支持的广度:

在 2017 年,Inferno 将会持续关注核心功能的提升,尽快修正缺陷并且会为社区提供支持和使用指南,还会花费精力采纳新的库,扩展 Inferno 的涉及范围和实现模块化,使其能够应用到范围更广的场景中。到目前为止,很多模块已经移植过来了,但是通过社区的努力,我们希望能够继续扩展这项工作。

相对于更加著名的 React 的替代方案 Preact ,Inferno 是一个新的参与者。这两者都可以用来替换 React,但是它们在关注点上有所差异。

查看英文原文 React Alternative Inferno Hits 1.0

2017-01-15 18:002852

评论

发布
暂无评论
发现更多内容

告别Kafka Stream,让轻量级流处理更加简单

阿里巴巴云原生

kafka 阿里云 云原生 ETL

WeTest云手机升级,支持iOS 15全新系统

WeTest

Linux创建/删除用户组

在即

9月日更

如何才能成为一名合格的架构师?

秋天

架构师

把低代码开发平台推给开百货店的朋友,对他有帮助吗?

低代码小观

低代码 企业 企业管理 管理者 管理工具

架构师知识笔记3

felix徐

全球最大规模对话生成模型问世!百度发布PLATO-XL,让机器像人一样思考和对话

科技热闻

恒源云(GpuShare)_手把手教你如何终端登陆实例

恒源云

架构师知识笔记 4

felix徐

JDK 内置命令行工具学习笔记二

六维

JVM 9月日更

网络协议之:WebSocket的消息格式

程序那些事

网络协议 HTTP websocket 程序那些事

深入 iOS 静态链接器(一)— ld64

字节跳动终端技术

ios 移动终端 火山引擎 静态链接器

模块八作业 一 消息队列存储模型设计

babos

#架构实战营

如何用 Java 判断一个给定的数是不是素数

HoneyMoose

架构实战课程 模块四作业

Frank

技术分析| 音视频服务集群如何实现全球多中心化调度

anyRTC开发者

区块链 音视频 WebRTC 中心化调度

精灵图在现代前端中到底有用没,css中显示和隐藏竟有两种不同方式

你好bk

CSS JavaScript html css3 大前端

用明道云搭建一个住宅式物业管理系统

明道云

第 3 章 -《Linux 一学就会》- 文件的基本管理和XFS 文件系统备份恢复

学神来啦

Linux 运维 文件存储 linux云计算

爱奇艺 TensorFlow Serving 内存泄漏优化实践

爱奇艺技术产品团队

内存

干货打包!最新实时同步5大应用场景,4种实现方案分享(有彩蛋)

tapdata

车联万物,有 Z-ONE SOA+AIoT!

SOA开发者

软件定义汽车

OpenKruise v0.10.0 新特性 WorkloadSpread 解读

阿里巴巴云原生

阿里云 容器 云原生 OpenKruise Workload

Java 中的 NaN

HoneyMoose

EMQ 映云科技加入信通院可信开源社区共同体,加速共建开源生态

EMQ映云科技

云计算 开源 物联网 开源社区 信通院

VEGA:诺亚AutoML高性能开源算法集简介

华为云开发者联盟

机器学习 AutoML 网络结构 VEGA AutoML算法

车联万物,有Z-ONE SOA+AIoT!

SOA开发者平台

AIOT SOA 软件定义汽车 OTA

23. 大部分工作将发生转变而非消失

数据与智能

人工智能

CANN 5.0硬核技术抢先看

华为云开发者联盟

架构 AI 计算 CANN 异构计算架构

『 JS算法-力扣557题』反转字符串中的单词 III

德育处主任

JavaScript 算法 大前端 js js算法

他说:“只是单纯的想用Python收集一些素颜照,做机器学习使用”,“我信你个鬼!”

梦想橡皮擦

9月日更

React的替代方案Inferno发布1.0版本_JavaScript_David Iffland_InfoQ精选文章