Wener Notes

preact

约 1 分钟阅读
  • preactjs/preactGitHubpreactjs/preactpreactjs/preact · React 替代 · preact - 10kB,4kB · =React+ReactDOM · preact-compat - 13kB,5kB · react - 7kB,3kB · react-dom - 130kB,42kB笔记:preact
    • React 替代
      • preact - 10kB,4kB
        • =React+ReactDOM
      • preact-compat - 13kB,5kB
      • react - 7kB,3kB
      • react-dom - 130kB,42kB
    • 适用于 微前端 bundle 场景
  • 参考
html
<script type="module">
  import { h, Component, render } from 'https://unpkg.com/preact?module';
  import htm from 'https://unpkg.com/htm?module';

  // htm 替代构造 DOM - 不依赖 JSX 转译但达到类似效果
  const html = htm.bind(h);

  function App(props) {
    return html`<h1>Hello ${props.name}!</h1>`;
  }

  render(html`<${App} name="World" />`, document.body);
</script>

依赖替代

package.json
{
  "dependencies": {
    "react": "npm:@preact/compat",
    "react-dom": "npm:@preact/compat"
  },
  "alias": {
    "react": "preact/compat",
    "react-dom/test-utils": "preact/test-utils",
    "react-dom": "preact/compat",
    "react/jsx-runtime": "preact/jsx-runtime"
  }
}

rollup 替代 react

JavaScript
export default {
  plugins: [
    alias({
      entries: [
        { find: 'react-dom', replacement: 'preact/compat' },
        { find: 'react', replacement: 'preact/compat' },
      ],
    }),
  ],
};

Testing

TSX
import { act } from 'preact/test-utils';

关联信息

反向链接、本文链接的其他页面和外部资料。

反向链接

  • Web Awesome
    笔记 · preact

    https://www.c82.net/iconography/ · https://www.photopea.com/ · ryohey/signal · MIT, TS · Online MIDI Editor: signal · http://oskarstalberg.com/Townscaper/

References

GitHub2 条
其他外链1 条
最近更新commit f85ea4bEdit

On this page