BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 David Iffland 关注 4 他的粉丝 ,译者 张卫滨 关注  他的粉丝 发布于 2017年1月16日. 估计阅读时间: 4 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

类似于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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT