Preact

React 的轻量化替代方案
授权协议 MIT
开发语言 JavaScript
所属分类 Web应用开发、 响应式 Web 框架
软件类型 开源软件
地区 不详
投 递 者 司英飙
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Preact 是 React 的轻量化替代方案,仅有 3KB。并且提供了相同的 ES6 API,还具有组件和 Virtual DOM。

具有以下特性:

  • 更接近于实质:Preact 在 DOM 上实现一个可能是最薄的一层虚拟 DOM 实现。

  • 小体积:这将意味可以下载更少的 JavaScript 代码,解析和执行 —— 为您的代码节省更多的时间。

  • 高性能:不仅是因为他的体积,还因为一个简单和可预测的 diff 实现,使它成为最快的虚拟 DOM 框架之一。

  • 轻量 & 可嵌入:使用 Preact 构建应用程序的各个部分,而无需复杂的集成。将 Preact 嵌入到窗口小部件中并应用相同的工具或技术,你将可以构建一个完整的应用程序。

  • 生态系统兼容:可以无缝使用 React 生态系统中可用的数千个组件。

示例代码:

获取 Github Stars

export default class Stars extends Component {
    async componentDidMount() {
        let stars = await githubStars(this.props.repo);
        this.setState({ stars });
    }
    render({ repo }, { stars=0 }) {
        let url = `//github.com/${repo}`;
        return (
            <a href={url} class="stars">
                ⭐️ {stars} Stars
            </a>
        );
    }
}

运行例子

import Stars from './stars';
render(
    <Stars repo="developit/preact" />,
    document.body
);
  • 系列文章: 从 Preact 源码一窥 React 原理(一):JSX 渲染(本文) 从 Preact 源码一窥 React 原理(二):Diff 算法 从 Preact 源码一窥 React 原理(三):组件 前言 Preact 是什么? Preact 是 React 的轻量级实现,在 3KB 的量级提供了你所需要的功能:渲染 JSX、组件、虚拟 DOM、Legacy/New Context A

 相关资料
  • 问题内容: 我的应用程序是带有密集字符串处理的多线程。我们正在经历过多的内存消耗,并且性能分析表明这是由于String数据引起的。我认为使用某种flyweight模式实现甚至是缓存将极大地受益于内存消耗(我可以肯定Strings通常是重复的,尽管我在这方面没有任何硬数据)。 我看过Java常量池和String.intern,但似乎可以引发一些PermGen问题。 在Java中实现应用程序范围的多线

  • 问题内容: 一个(很久以前),我写了一个网络蜘蛛,我对该线程进行了多线程处理,以使并发请求能够同时发生。那是我的Python青年时代,在我了解GIL及其为多线程代码造成的相关麻烦之前(IE,大多数时候,这些东西最终都被序列化了!)… 我想对这段代码进行重做,以使其更健壮并性能更好。基本上有两种方法可以执行此操作:我可以使用2.6+中的新多处理模块,也可以使用某种基于反应堆/事件的模型。我宁愿以后再

  • 问题内容: 按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我有一个单用户Java程序,希望将数据存储在轻量级数据库(例如Derby或Sqlite)中。我想在程序中使用数据抽象层。Hibernate似乎需要大量配置,并且

  • 问题内容: 我刚刚开发了自己的小型JDBC帮助程序库,并且我已经意识到它将成为维护方面的噩梦。 我不是在寻找像Hibernate这样的成熟ORM,它只是一种轻巧有用的工具,它可以快速使JDBC调用快速传递SQL语句,而不会弄乱被检查的异常,手动关闭资源等。 根据您的经验,您可以推荐一个不错的JDBC帮助程序库吗? 到目前为止,我已经看过了ApacheCommonsDbUtils,它看起来不错。还有

  • “新”工具Oracle SQLcl未解释” 预期的答案是:(使用sqlplus)

  • 我需要缓存来自ReactiveMongoRepository的数据。数据大约每年更新两次,所以我不在乎缓存是否过期。 由于我们不能将@Cacheable与flux一起使用,我想找到一种简单明了的方法来存储来自Mongo到redis的数据,如果存在,就使用该数据,否则就存储并服务于原始数据。 有没有比 我明确寻找的是一个选项,可以让我像@Cacheable注释一样缓存数据。我正在寻找一个通用的解决方

  • 问题内容: 出于各种原因,在编写 Java应用程序时 ,调用会被皱眉,所以如何通知调用过程并非一切都按计划进行? 编辑: 1是任何非零退出代码的。 问题答案: 当“应用程序”实际上是较大的Java应用程序(服务器)的子应用程序(例如servlet,applet)时,对的使用会被拒绝:在这种情况下,它可能会停止JVM并因此停止所有其他子应用程序。在这种情况下,抛出适当的异常(最好由应用程序框架/服务

  • 问题内容: 我知道这个话题已经解决了上千次。但是我找不到解决办法。 我正在尝试计算列表(df2.list2)的列中出现列表(df1.list1的每一行)的频率。所有列表仅包含唯一值。List1包含约300.000行,list2包含30.000行。 我有一个有效的代码,但是它的运行速度非常慢(因为我使用的是迭代程序)。我也尝试过itertuples(),但它给了我一个错误(“要解压缩的值太多(预期2