请问preact与react有什么区别?
网友回复
Preact是React 的轻量级替代方案,体积仅有 3kB,并且拥有与 React 相同的 API。这是preact官方的说法。
我们先看看preact的代码示例:
<!DOCTYPE html> <html lang="en"> <script type="module"> import { h, Component, render } from '//repo.bfw.wiki/bfwrepo/js/preact.module.js'; import htm from '//repo.bfw.wiki/bfwrepo/js/htm.module.js'; // Initialize htm with Preact const html = htm.bind(h); function App (props) { return html`<h1>Hello ${props.name}!</h1>`; } render(html`<${App} name="World" />`, document.body); </script> </html>我们再看看react的示例代码:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/react.15.4.2.js"></script> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/react-dom.15.4.2.js"></script> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/babel.min.js"></script> <script type="text/babel"> class HelloMessage extends React.Component { render() { return ( <div> Hello {this.props.name} </div> ); } } ReactDOM.render( <HelloMessage name="World" />, document.getElementById('hello-example') ); </script> <style> </style> </head> <body> <div id="hello-example"> </div> </body> </html>preact要在浏览器中直接运行,需要借助htm,但是react要想在浏览器运行,需要借助babel,并将type设置为text-babel才行。
preact由于其出色的性能与速度比较合适小型项目使用。相信preact的未来会更好。