million
约 1 分钟阅读
- aidenybai/millionGitHubaidenybai/millionaidenybai/million · MIT · <4kb · The Virtual DOM Replacement for React · https://million.dev/blog/virtual-dom · Diff the data, not the DOM.笔记:million
- MIT
- <4kb
- The Virtual DOM Replacement for React
- million.dev/blog/virtual-dom
- Diff the data, not the DOM.
- 适用场景
- 大量静态内容但,少部分动态内容
- "Stable" UI trees - 不做结构性变化
- 细粒度场景优化
- 功能和 react compiler笔记react-compiler参考 · https://playground.react.dev/ · https://react.dev/learn/react-compiler · ESBuild Plugin · https://gist.github.com/sikanhe/f9ac68dd4c78c914c29cc98e7b875466打开:/notes/web/react/compiler 有一定重复
- twitter.com/aidenybai/status/1794192039808315427
- million.dev/blog/lint-rc
- million lint PGO - Profile Guided Optimization
- 支持外部状态库优化
npx million@latest # 自动 initvite
import million from 'million/compiler';
import react from '@vitejs/plugin-react';
import { defineConfig } from 'vite';
export default defineConfig({
plugins: [million.vite({ auto: true }), react()],
});nextjs
import million from 'million/compiler';
/** @type {import('next').NextConfig} */
const nextConfig = {
reactStrictMode: true,
};
const millionConfig = {
auto: true, // if you're using RSC: auto: { rsc: true },
};
export default million.next(nextConfig, millionConfig);Rules
- million.dev/docs/manual-mode/block
- Block needs to be defined as a variable declaration.
- Deterministic returns
// Block 能被定义为变量
console.log(block(() => <div />)) // ❌ Wrong
export default block(() => <div />) // ❌ Wrong
// 👇👇👇
const Block = block(() => <div />) // ✅ Correct关联信息
反向链接和本文引用的外部资料。
反向链接
- React Awesome笔记 · aidenybai/million
专门功能选择专业组件 - Headless 配合 UI 组件达到更为理想的结果 · react-table · react-hook-form · floatingui · 选择样式与组件独立的 UI 库 · tailwindcss+daisyui
References
GitHub
1 条- aidenybai/milliongithub.com/aidenybai/million
其他外链
4 条- million.dev/blog/lint-rcmillion.dev/blog/lint-rc
- million.dev/blog/virtual-dommillion.dev/blog/virtual-dom
- million.dev/docs/manual-mode/blockmillion.dev/docs/manual-mode/block
- twitter.com/aidenybai/status/1794192039808315427twitter.com/aidenybai/status/1794192039808315427