百万是一个极快和轻量级()虚拟DOM,它使React组件的速度提高了70%。
<4kb
天呐...另一个
/virtual dom|javascript/gi
框架?我已经对 React 很好了,为什么我需要这个?
百万与 React 合作。百万使创建 Web 应用程序变得同样简单(它只是包装一个 React 组件!),但渲染和加载速度更快。通过使用微调、优化的虚拟 DOM,Million.js 减少了 React 的开销(在这里试用一下))
博士:想象一下,React 组件以原始 JavaScript 的速度运行。
Million.js 是一个库,使你能够创建块。块是一种特殊的高阶组件 (HOC),可以用作 React 组件,但针对渲染速度进行了超优化。
下面是一个用 Million.js 包装的 React “计数器”组件的示例。
import { useState } from 'react';
import { block } from 'million/react';
// Just wrap Counter in a block() function!
const Counter = block(function Counter({ initialCount }) {
const [count, setCount] = useState(initialCount);
const handleClick = () => {
setCount(count + 1);
};
return <button onClick={handleClick}>{count}</button>;
});
export default Counter;
此存储库是带有模块的“单存储库”。百万作为 NPM 包提供,但具有用于更复杂但重要扩展的一流模块。每个模块在目录中都有自己的文件夹。
/packages
你还可以通过我们的路线图跟踪我们的进度。
模块 | 描述 |
---|---|
million |
具有Million所有核心的主虚拟DOM。 |
React / React 服务器 / |
React 兼容性为百万。 |
preact/preact-server / |
预演兼容性为百万。 |
compiler |
百万 in React 的编译器。 |
jsx-runtime |
用于百万核心的简单 JSX 运行时。 |
types |
包之间的共享类型 |
寻找文档?查看文档或贡献指南。我们还建议你阅读Virtual DOM:Back in Block,以了解有关Million内部的更多信息。
想与社区交谈吗?加入我们的 Discord,分享你的想法以及你与 Million 一起构建的内容。
发现错误?前往我们的问题跟踪器,我们将尽最大努力提供帮助。我们也喜欢拉取请求!
我们希望所有百万贡献者都遵守我们的行为准则条款。
Million从以下项目中汲取了大量灵感:
blockdom
(Géry Debongnie) 感谢 Géry 在虚拟 DOM 中开创了“块”的概念。Million.js代码库的许多部分直接或间接地来自他的工作。voby
(Fabio Spampinato)百万.js“模板”概念源自Voby的API。template()
React
和涡轮增压
他们的文档。当前 Million.js 文档的许多部分都是从他们的文档中摸索和修改的。ivi
、Preact 等
Million正在Wyze和Dimension等公司以及Quartz,TinyPages等开源工作中使用。
Million是 MIT 授权的开源软件,由Aiden Bai和贡献者: