{"meta":{"title":"Preact","description":"Fast 3kB alternative to React with the same modern API"},"html":"<jumbotron>\n    <h1>\n        <logo height=\"1.5em\" title=\"Preact\" text=\"true\" inverted=\"true\">Preact</logo>\n    </h1>\n    <p class=\"tagline\">Fast 3kB alternative to React with the same modern API</p>\n    <p class=\"intro-buttons\">\n        <a href=\"/guide/v11/getting-started\" class=\"btn primary\">Get Started</a>\n        <a href=\"/guide/v11/getting-started#aliasing-react-to-preact\" class=\"btn secondary\">Switch to Preact</a>\n    </p>\n</jumbotron>\n\n\n\t\t\t\t<div class=\"highlight-container\">\n\t\t\t\t\t<pre class=\"highlight\"><code class=\"language-jsx\"><span class=\"token keyword\">function</span> <span class=\"token function\">Counter</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\t<span class=\"token keyword\">const</span> <span class=\"token punctuation\">[</span>value<span class=\"token punctuation\">,</span> setValue<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token function\">useState</span><span class=\"token punctuation\">(</span><span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n\t<span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>\n\t\t<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span></span><span class=\"token punctuation\">></span></span><span class=\"token plain-text\">\n\t\t\t</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span><span class=\"token punctuation\">></span></span><span class=\"token plain-text\">Counter: </span><span class=\"token punctuation\">{</span>value<span class=\"token punctuation\">}</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span><span class=\"token plain-text\">\n\t\t\t</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>button</span> <span class=\"token attr-name\">onClick</span><span class=\"token script language-javascript\"><span class=\"token script-punctuation punctuation\">=</span><span class=\"token punctuation\">{</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token function\">setValue</span><span class=\"token punctuation\">(</span>value <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">}</span></span><span class=\"token punctuation\">></span></span><span class=\"token plain-text\">Increment</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>button</span><span class=\"token punctuation\">></span></span><span class=\"token plain-text\">\n\t\t\t</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>button</span> <span class=\"token attr-name\">onClick</span><span class=\"token script language-javascript\"><span class=\"token script-punctuation punctuation\">=</span><span class=\"token punctuation\">{</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token function\">setValue</span><span class=\"token punctuation\">(</span>value <span class=\"token operator\">-</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">}</span></span><span class=\"token punctuation\">></span></span><span class=\"token plain-text\">Decrement</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>button</span><span class=\"token punctuation\">></span></span><span class=\"token plain-text\">\n\t\t</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span></span><span class=\"token punctuation\">></span></span>\n\t<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code></pre>\n\t\t\t\t\t\n\t\t\t\t</div>\n\t\t\t<section class=\"sponsors\">\n  <p>Proudly <a href=\"https://opencollective.com/preact\">sponsored by:</a></p>\n  <sponsors></sponsors>\n</section>\n\n<section class=\"home-top\">\n    <h2>A different kind of library</h2>\n</section>\n\n<section class=\"home-section\">\n  <img src=\"/home/metal.svg\" alt=\"metal\" loading=\"lazy\" decoding=\"async\" width=\"54\" height=\"54\">\n\n  <div>\n    <h3>Closer to the DOM</h3>\n    <p>\n      Preact provides the thinnest possible Virtual DOM abstraction on top of the DOM.\n      It builds on stable platform features, registers real event handlers and plays nicely with other libraries.\n    </p>\n    <p>\n      Preact can be used directly in the browser without any transpilation steps.\n    </p>\n  </div>\n</section>\n\n<section class=\"home-section\">\n  <img src=\"/home/size.svg\" alt=\"size\" loading=\"lazy\" decoding=\"async\" width=\"54\" height=\"54\">\n\n  <div>\n    <h3>Small Size</h3>\n    <p>\n      Most UI frameworks are large enough to be the majority of an app's JavaScript size.\n      Preact is different: it's small enough that <em>your code</em> is the largest part of your application.\n    </p>\n    <p>\n      That means less JavaScript to download, parse and execute - leaving more time for your code, so you can build an experience you define without fighting to keep a framework under control.\n    </p>\n  </div>\n</section>\n\n<section class=\"home-section\">\n  <img src=\"/home/performance.svg\" alt=\"performance\" loading=\"lazy\" decoding=\"async\" width=\"54\" height=\"54\">\n\n  <div>\n    <h3>Big Performance</h3>\n    <p>\n      Preact is fast, and not just because of its size. It's one of the fastest Virtual DOM libraries out there, thanks to a simple and predictable diff implementation.\n    </p>\n    <p>\n      We automatically batch updates and tune Preact to the extreme when it comes to performance. We work closely with\n      browser engineers to get the maximum performance possible out of Preact.\n    </p>\n  </div>\n</section>\n\n<section class=\"home-section\">\n  <img src=\"/home/portable.svg\" alt=\"portable\" loading=\"lazy\" decoding=\"async\" width=\"54\" height=\"54\">\n\n  <div>\n    <h3>Portable &amp; Embeddable</h3>\n    <p>\n      Preact's tiny footprint means you can take the powerful Virtual DOM Component paradigm to new places it couldn't otherwise go.\n    </p>\n    <p>\n      Use Preact to build parts of an app without complex integration. Embed Preact into a widget and apply the same tools and techniques that you would to build a full app.\n    </p>\n  </div>\n</section>\n\n<section class=\"home-section\">\n  <img src=\"/home/productive.svg\" alt=\"productive\" loading=\"lazy\" decoding=\"async\" width=\"54\" height=\"54\">\n\n  <div>\n    <h3>Instantly Productive</h3>\n    <p>\n      Lightweight is a lot more fun when you don't have to sacrifice productivity to get there. Preact gets you productive right away. It even has a few bonus features:\n    </p>\n    <ul>\n      <li><code>props</code>, <code>state</code> and <code>context</code> are passed to <code>render()</code></li>\n      <li>Use standard HTML attributes like <code>class</code> and <code>for</code></li>\n    </ul>\n  </div>\n</section>\n\n<section class=\"home-section\">\n  <img src=\"/home/compatible.svg\" alt=\"compatible\" loading=\"lazy\" decoding=\"async\" width=\"54\" height=\"54\">\n\n  <div>\n    <h3>Ecosystem Compatible</h3>\n    <p>\n      Virtual DOM Components make it easy to share reusable things - everything from buttons to data providers.\n      Preact's design means you can seamlessly use thousands of Components available in the React ecosystem.\n    </p>\n    <p>\n      Adding a simple <a href=\"/guide/v11/getting-started#aliasing-react-to-preact\">preact/compat</a> alias to your bundler provides a compatibility layer\n      that enables even the most complex React components to be used in your application.\n    </p>\n  </div>\n</section>\n\n<section class=\"home-top\">\n    <h2>See it in action!</h2>\n</section>\n\n<section class=\"home-split\">\n    <div>\n        <h3>Todo List</h3>\n        <div class=\"highlight-container\"><pre class=\"highlight\"><code class=\"language-jsx\"><span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token keyword\">class</span> <span class=\"token class-name\">TodoList</span> <span class=\"token keyword\">extends</span> <span class=\"token class-name\">Component</span> <span class=\"token punctuation\">{</span>\n\tstate <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span> <span class=\"token literal-property property\">todos</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> <span class=\"token literal-property property\">text</span><span class=\"token operator\">:</span> <span class=\"token string\">\"\"</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n\n\t<span class=\"token function-variable function\">setText</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token parameter\">e</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n\t\t<span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span><span class=\"token function\">setState</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span> <span class=\"token literal-property property\">text</span><span class=\"token operator\">:</span> e<span class=\"token punctuation\">.</span>currentTarget<span class=\"token punctuation\">.</span>value <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\t<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n\n\t<span class=\"token function-variable function\">addTodo</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n\t\t<span class=\"token keyword\">let</span> <span class=\"token punctuation\">{</span> todos<span class=\"token punctuation\">,</span> text <span class=\"token punctuation\">}</span> <span class=\"token operator\">=</span> <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>state<span class=\"token punctuation\">;</span>\n\t\ttodos <span class=\"token operator\">=</span> todos<span class=\"token punctuation\">.</span><span class=\"token function\">concat</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span> text <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\t\t<span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span><span class=\"token function\">setState</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span> todos<span class=\"token punctuation\">,</span> <span class=\"token literal-property property\">text</span><span class=\"token operator\">:</span> <span class=\"token string\">\"\"</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\t<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n\n\t<span class=\"token function\">render</span><span class=\"token punctuation\">(</span><span class=\"token parameter\"><span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span> todos<span class=\"token punctuation\">,</span> text <span class=\"token punctuation\">}</span></span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\t\t<span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>\n\t\t\t<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>form</span> <span class=\"token attr-name\">onSubmit</span><span class=\"token script language-javascript\"><span class=\"token script-punctuation punctuation\">=</span><span class=\"token punctuation\">{</span><span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>addTodo<span class=\"token punctuation\">}</span></span> <span class=\"token attr-name\">action</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>javascript:<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span><span class=\"token plain-text\">\n\t\t\t\t</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>label</span><span class=\"token punctuation\">></span></span><span class=\"token plain-text\">\n\t\t\t\t\t</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>span</span><span class=\"token punctuation\">></span></span><span class=\"token plain-text\">Add Todo</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>span</span><span class=\"token punctuation\">></span></span><span class=\"token plain-text\">\n\t\t\t\t\t</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>input</span> <span class=\"token attr-name\">value</span><span class=\"token script language-javascript\"><span class=\"token script-punctuation punctuation\">=</span><span class=\"token punctuation\">{</span>text<span class=\"token punctuation\">}</span></span> <span class=\"token attr-name\">onInput</span><span class=\"token script language-javascript\"><span class=\"token script-punctuation punctuation\">=</span><span class=\"token punctuation\">{</span><span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>setText<span class=\"token punctuation\">}</span></span> <span class=\"token punctuation\">/></span></span><span class=\"token plain-text\">\n\t\t\t\t</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>label</span><span class=\"token punctuation\">></span></span><span class=\"token plain-text\">\n\t\t\t\t</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>button</span> <span class=\"token attr-name\">type</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>submit<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span><span class=\"token plain-text\">Add</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>button</span><span class=\"token punctuation\">></span></span><span class=\"token plain-text\">\n\t\t\t\t</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>ul</span><span class=\"token punctuation\">></span></span><span class=\"token plain-text\">\n\t\t\t\t\t</span><span class=\"token punctuation\">{</span>todos<span class=\"token punctuation\">.</span><span class=\"token function\">map</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">todo</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">(</span>\n\t\t\t\t\t\t<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>li</span><span class=\"token punctuation\">></span></span><span class=\"token punctuation\">{</span>todo<span class=\"token punctuation\">.</span>text<span class=\"token punctuation\">}</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>li</span><span class=\"token punctuation\">></span></span>\n\t\t\t\t\t<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">}</span><span class=\"token plain-text\">\n\t\t\t\t</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>ul</span><span class=\"token punctuation\">></span></span><span class=\"token plain-text\">\n\t\t\t</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>form</span><span class=\"token punctuation\">></span></span>\n\t\t<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\t<span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>\n</code></pre><a class=\"repl-link\" href=\"/repl?code=aW1wb3J0IHsgQ29tcG9uZW50LCByZW5kZXIgfSBmcm9tICJwcmVhY3QiOwoKZXhwb3J0IGRlZmF1bHQgY2xhc3MgVG9kb0xpc3QgZXh0ZW5kcyBDb21wb25lbnQgewoJc3RhdGUgPSB7IHRvZG9zOiBbXSwgdGV4dDogIiIgfTsKCglzZXRUZXh0ID0gKGUpID0%2BIHsKCQl0aGlzLnNldFN0YXRlKHsgdGV4dDogZS5jdXJyZW50VGFyZ2V0LnZhbHVlIH0pOwoJfTsKCglhZGRUb2RvID0gKCkgPT4gewoJCWxldCB7IHRvZG9zLCB0ZXh0IH0gPSB0aGlzLnN0YXRlOwoJCXRvZG9zID0gdG9kb3MuY29uY2F0KHsgdGV4dCB9KTsKCQl0aGlzLnNldFN0YXRlKHsgdG9kb3MsIHRleHQ6ICIiIH0pOwoJfTsKCglyZW5kZXIoe30sIHsgdG9kb3MsIHRleHQgfSkgewoJCXJldHVybiAoCgkJCTxmb3JtIG9uU3VibWl0PXt0aGlzLmFkZFRvZG99IGFjdGlvbj0iamF2YXNjcmlwdDoiPgoJCQkJPGxhYmVsPgoJCQkJCTxzcGFuPkFkZCBUb2RvPC9zcGFuPgoJCQkJCTxpbnB1dCB2YWx1ZT17dGV4dH0gb25JbnB1dD17dGhpcy5zZXRUZXh0fSAvPgoJCQkJPC9sYWJlbD4KCQkJCTxidXR0b24gdHlwZT0ic3VibWl0Ij5BZGQ8L2J1dHRvbj4KCQkJCTx1bD4KCQkJCQl7dG9kb3MubWFwKCh0b2RvKSA9PiAoCgkJCQkJCTxsaT57dG9kby50ZXh0fTwvbGk%2BCgkJCQkJKSl9CgkJCQk8L3VsPgoJCQk8L2Zvcm0%2BCgkJKTsKCX0KfQoKcmVuZGVyKDxUb2RvTGlzdCAvPiwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcCIpKTsK\">\n\t\t\t\t\tRun in REPL\n\t\t\t\t</a></div>\n    </div>\n    <div>\n        <h3>Running Example</h3>\n        <div class=\"highlight-container\"><pre repl=\"false\" class=\"highlight\"><code class=\"language-jsx\"><span class=\"token keyword\">import</span> TodoList <span class=\"token keyword\">from</span> <span class=\"token string\">'./todo-list'</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token function\">render</span><span class=\"token punctuation\">(</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span><span class=\"token class-name\">TodoList</span></span> <span class=\"token punctuation\">/></span></span><span class=\"token punctuation\">,</span> document<span class=\"token punctuation\">.</span>body<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n        <div class=\"home-demo\">\n            <todo-list></todo-list>\n        </div>\n    </div>\n</section>\n\n<section class=\"home-split\">\n    <div>\n        <h3>Fetch GitHub Repos</h3>\n        <div class=\"highlight-container\"><pre class=\"highlight\"><code class=\"language-jsx\"><span class=\"token keyword\">const</span> <span class=\"token function-variable function\">compare</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token parameter\">a<span class=\"token punctuation\">,</span> b</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span>\n\t<span class=\"token punctuation\">(</span>a<span class=\"token punctuation\">.</span>stargazers_count <span class=\"token operator\">&lt;</span> b<span class=\"token punctuation\">.</span>stargazers_count <span class=\"token operator\">?</span> <span class=\"token number\">1</span> <span class=\"token operator\">:</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token keyword\">function</span> <span class=\"token function\">GitHubRepos</span><span class=\"token punctuation\">(</span><span class=\"token parameter\"><span class=\"token punctuation\">{</span> org <span class=\"token punctuation\">}</span></span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\t<span class=\"token keyword\">const</span> <span class=\"token punctuation\">[</span>items<span class=\"token punctuation\">,</span> setItems<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token function\">useState</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n\t<span class=\"token function\">useEffect</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n\t\t<span class=\"token function\">fetch</span><span class=\"token punctuation\">(</span><span class=\"token template-string\"><span class=\"token template-punctuation string\">`</span><span class=\"token string\">https://api.github.com/orgs/</span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>org<span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token string\">/repos</span><span class=\"token template-punctuation string\">`</span></span><span class=\"token punctuation\">)</span>\n\t\t\t<span class=\"token punctuation\">.</span><span class=\"token function\">then</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">res</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> res<span class=\"token punctuation\">.</span><span class=\"token function\">json</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n\t\t\t<span class=\"token punctuation\">.</span><span class=\"token function\">then</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">repos</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span>\n\t\t\t\t<span class=\"token function\">setItems</span><span class=\"token punctuation\">(</span>repos<span class=\"token punctuation\">.</span><span class=\"token function\">sort</span><span class=\"token punctuation\">(</span>compare<span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">slice</span><span class=\"token punctuation\">(</span><span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">5</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n\t\t\t<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\t<span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n\t<span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>\n\t\t<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span><span class=\"token punctuation\">></span></span><span class=\"token plain-text\">\n\t\t\t</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>h1</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>repo-list-header<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span><span class=\"token plain-text\">\n\t\t\t\tPreact Repositories\n\t\t\t</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>h1</span><span class=\"token punctuation\">></span></span><span class=\"token plain-text\">\n\t\t\t</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span><span class=\"token punctuation\">></span></span><span class=\"token plain-text\">\n\t\t\t\t</span><span class=\"token punctuation\">{</span>items<span class=\"token punctuation\">.</span><span class=\"token function\">map</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">result</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">(</span>\n\t\t\t\t\t<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span><span class=\"token class-name\">Result</span></span> <span class=\"token spread\"><span class=\"token punctuation\">{</span><span class=\"token operator\">...</span>result<span class=\"token punctuation\">}</span></span> <span class=\"token punctuation\">/></span></span>\n\t\t\t\t<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">}</span><span class=\"token plain-text\">\n\t\t\t</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span><span class=\"token plain-text\">\n\t\t</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\n\t<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token keyword\">function</span> <span class=\"token function\">Result</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">result</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\t<span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>\n\t\t<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>repo-list-item<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span><span class=\"token plain-text\">\n\t\t\t</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span><span class=\"token punctuation\">></span></span><span class=\"token plain-text\">\n\t\t\t\t</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>a</span>\n\t\t\t\t\t<span class=\"token attr-name\">href</span><span class=\"token script language-javascript\"><span class=\"token script-punctuation punctuation\">=</span><span class=\"token punctuation\">{</span>result<span class=\"token punctuation\">.</span>html_url<span class=\"token punctuation\">}</span></span>\n\t\t\t\t\t<span class=\"token attr-name\">target</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>_blank<span class=\"token punctuation\">\"</span></span>\n\t\t\t\t\t<span class=\"token attr-name\">rel</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>noopener noreferrer<span class=\"token punctuation\">\"</span></span>\n\t\t\t\t<span class=\"token punctuation\">></span></span><span class=\"token plain-text\">\n\t\t\t\t\t</span><span class=\"token punctuation\">{</span>result<span class=\"token punctuation\">.</span>full_name<span class=\"token punctuation\">}</span><span class=\"token plain-text\">\n\t\t\t\t</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>a</span><span class=\"token punctuation\">></span></span><span class=\"token plain-text\">\n\t\t\t\t</span><span class=\"token punctuation\">{</span><span class=\"token string\">\" - \"</span><span class=\"token punctuation\">}</span><span class=\"token plain-text\">\n\t\t\t\t</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>strong</span><span class=\"token punctuation\">></span></span><span class=\"token plain-text\">\n\t\t\t\t\t⭐️</span><span class=\"token punctuation\">{</span>result<span class=\"token punctuation\">.</span>stargazers_count<span class=\"token punctuation\">.</span><span class=\"token function\">toLocaleString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">}</span><span class=\"token plain-text\">\n\t\t\t\t</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>strong</span><span class=\"token punctuation\">></span></span><span class=\"token plain-text\">\n\t\t\t</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span><span class=\"token plain-text\">\n\t\t\t</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>p</span><span class=\"token punctuation\">></span></span><span class=\"token punctuation\">{</span>result<span class=\"token punctuation\">.</span>description<span class=\"token punctuation\">}</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>p</span><span class=\"token punctuation\">></span></span><span class=\"token plain-text\">\n\t\t</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\n\t<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n</code></pre><a class=\"repl-link\" href=\"/repl?code=aW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAicHJlYWN0IjsKaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gInByZWFjdC9ob29rcyI7Cgpjb25zdCBjb21wYXJlID0gKGEsIGIpID0%2BCgkoYS5zdGFyZ2F6ZXJzX2NvdW50IDwgYi5zdGFyZ2F6ZXJzX2NvdW50ID8gMSA6IC0xKTsKCmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEdpdEh1YlJlcG9zKHsgb3JnIH0pIHsKCWNvbnN0IFtpdGVtcywgc2V0SXRlbXNdID0gdXNlU3RhdGUoW10pOwoKCXVzZUVmZmVjdCgoKSA9PiB7CgkJZmV0Y2goYGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vb3Jncy8ke29yZ30vcmVwb3NgKQoJCQkudGhlbigocmVzKSA9PiByZXMuanNvbigpKQoJCQkudGhlbigocmVwb3MpID0%2BCgkJCQlzZXRJdGVtcyhyZXBvcy5zb3J0KGNvbXBhcmUpLnNsaWNlKDAsIDUpKQoJCQkpOwoJfSwgW10pOwoKCXJldHVybiAoCgkJPGRpdj4KCQkJPGgxIGNsYXNzPSJyZXBvLWxpc3QtaGVhZGVyIj4KCQkJCVByZWFjdCBSZXBvc2l0b3JpZXMKCQkJPC9oMT4KCQkJPGRpdj4KCQkJCXtpdGVtcy5tYXAoKHJlc3VsdCkgPT4gKAoJCQkJCTxSZXN1bHQgey4uLnJlc3VsdH0gLz4KCQkJCSkpfQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCSk7Cn0KCmZ1bmN0aW9uIFJlc3VsdChyZXN1bHQpIHsKCXJldHVybiAoCgkJPGRpdiBjbGFzcz0icmVwby1saXN0LWl0ZW0iPgoJCQk8ZGl2PgoJCQkJPGEKCQkJCQlocmVmPXtyZXN1bHQuaHRtbF91cmx9CgkJCQkJdGFyZ2V0PSJfYmxhbmsiCgkJCQkJcmVsPSJub29wZW5lciBub3JlZmVycmVyIgoJCQkJPgoJCQkJCXtyZXN1bHQuZnVsbF9uYW1lfQoJCQkJPC9hPgoJCQkJeyIgLSAifQoJCQkJPHN0cm9uZz4KCQkJCQnirZDvuI97cmVzdWx0LnN0YXJnYXplcnNfY291bnQudG9Mb2NhbGVTdHJpbmcoKX0KCQkJCTwvc3Ryb25nPgoJCQk8L2Rpdj4KCQkJPHA%2Be3Jlc3VsdC5kZXNjcmlwdGlvbn08L3A%2BCgkJPC9kaXY%2BCgkpOwp9CgpyZW5kZXIoPEdpdEh1YlJlcG9zIG9yZz0icHJlYWN0anMiIC8%2BLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXBwIikpOwo%3D\">\n\t\t\t\t\tRun in REPL\n\t\t\t\t</a></div>\n    </div>\n    <div>\n        <h3>Running Example</h3>\n        <div class=\"highlight-container\"><pre repl=\"false\" class=\"highlight\"><code class=\"language-jsx\"><span class=\"token keyword\">import</span> GitHubRepos <span class=\"token keyword\">from</span> <span class=\"token string\">'./github-repos'</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token function\">render</span><span class=\"token punctuation\">(</span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span><span class=\"token class-name\">GitHubRepos</span></span> <span class=\"token attr-name\">org</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>preactjs<span class=\"token punctuation\">\"</span></span> <span class=\"token punctuation\">/></span></span><span class=\"token punctuation\">,</span>\n    document<span class=\"token punctuation\">.</span>body\n<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n        <div class=\"home-demo\">\n            <github-repos org=\"preactjs\"></github-repos>\n        </div>\n    </div>\n</section>\n\n<section class=\"home-top\">\n    <h2>Ready to dive in?</h2>\n</section>\n\n<section style=\"text-align:center;\">\n    <p>\n        We've got separate guides based on whether you have experience with React.\n        <br>\n        Pick the guide that works best for you!\n    </p>\n    <p>\n        <a href=\"/guide/v11/getting-started\" class=\"btn primary\">Get Started</a>\n        <a href=\"/guide/v11/getting-started#aliasing-react-to-preact\" class=\"btn secondary\">Switch to Preact</a>\n    </p>\n</section>"}