为什么我们需要在 ReactJs 中使用 web-pack?

Why we need to use web-pack in ReactJs?

为什么要用webpack,难道只是为了捆绑和继承Plugins来最小化和压缩。 webpack 在 Web 应用程序开发中扮演的主要角色是什么?

正如您所说,Webpack 是一个打包工具,您可以使用任何其他打包工具,例如 browserify / rollup

React 应用程序通常会使用 ES6 imports, and not all the browsers supports 它,因此您需要在 React 应用程序中使用一些捆绑器来解决这些问题 "imports" 并创建一个当前浏览器可以理解的 bundle 文件。

Webpack 在前端社区变得越来越流行和强大,因此像 create-react-app 这样的大多数 "starter kits" 都会使用它。

webpack的用途包括

  • 将 JSX 语法(HTML 内的标签 Javascript)转译为 JS
  • 将 ES6 语法(箭头函数、spead 运算符等)转换为浏览器支持的 Javascript 版本。
  • 最好将代码拆分成可以导入的单独文件(模块)。 Webpack 'bundles' 将所有这些文件打包成一个 JS 文件以供生产使用
  • 在打包的时候,还可以进行minify、uglify等优化

顺便说一句,您不需要 使用 webpack。例如,

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>My First React Example</title>
  </head>
  <body>
    <div id="greeting-div"></div>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.0.0/cjs/react.development.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.0.0/cjs/react-dom-server.browser.development.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.34/browser.min.js"></script>
    <script type="text/babel">
      var Greeting = React.createClass({
        render: function() {
          return (
            <p>Hello, Universe</p>
          )
        }
      });

      ReactDOM.render(
        <Greeting/>,
        document.getElementById('greeting-div')
      );
    </script>
  </body>
</html>

这里,JSX 代码正在 'transpiled' 动态获取 JS。但是,这在生产使用中效率不高。