我正在使用 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/库。那么 cjs
和 umd
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/