javascript - 使用 CDN 将 React 集成到现有的 Node Express 应用程序中

标签 javascript node.js reactjs cdn

我正在使用 node 和 React 创建一个网络应用程序。我不想将 Node 和 React 应用程序分开,而是想将 React 集成到其中。因此,我尝试将 React CDN 导入 index.html 而不是 React 应用程序。我的服务器完美地提供了 index.html,但我在 react 组件中遇到错误。

这是我的index.html

<html>
  <head>
    <meta charset="utf-8">
    <title>React Powered chat App</title>
  </head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.2.0/umd/react.development.js"></script>
 <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.2.0/umd/react-dom.development.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.4/socket.io.js" charset="utf-8"></script>
  <script src="/scripts/main.js" charset="utf-8"></script>
  <body>
    Hello !
    <div id ='App'></div>
  </body>
</html>

这是我的main.js

class App extends React.Component {
  render(){
    return (
      <div>
        Hello !
      </div>
    );
  }
}

ReactDOM.render(<App />, document.getElementById('App'));

我得到的错误是

Uncaught SyntaxError: Unexpected token <                     main.js:4

我做错了什么?不能使用与 CDN 的 react 吗?

首先,当我使用 react/cjs/react.development 库时,我遇到了更多错误。然后看完this stackoverflow 问题我使用/react/umd/库。那么 cjsumd CDN 库有什么区别呢?

最佳答案

该代码不起作用,因为 react 使用 JSX(javascript 中的 HTML),浏览器无法读取它,需要将其转换为浏览器可以读取的普通 javascript。一个这样的转译器是 babel。由于缺少转译器,您的代码无法正常工作。

您可以使用 create-react-app ,它与转译器以及开始使用 React 所需的一切捆绑在一起。据我了解,既然你想添加你的 express 后端,这里是一个 tutorial这将帮助您开始将 create-react-app 附加到您的 express 后端。希望这会有所帮助。

关于javascript - 使用 CDN 将 React 集成到现有的 Node Express 应用程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48040566/

相关文章:

javascript - 我如何使用表行 id 作为 angularjs 函数的参数

javascript - 如何等待多个嵌套数组

javascript - 如何在javascript(node js)中修改日期格式

node.js - 删除后仍然找到Elasticsearch文件?

javascript - ReactJS:[ this.props ] 与 [ this 中的 props ] 不可能不同

javascript - 添加到数组中

javascript - React Router Dom 无法识别带有查询参数的 url

javascript - Sencha touch 应用加载掩码

javascript - 从对象创建嵌套数组失败

reactjs - `TypeDefinition for React v15.0` 会与 React v0.14.7 一起使用吗