javascript - 在非 React 构建网站中导入 React 组件的正确方法是什么?
问题描述
我用 Node、Express 构建了一个站点,并想添加一个用 React 和 JSX 构建的页面。
我已经将 Babel 安装为 npm 包,并将 React 作为这样的脚本添加到 index.html 中:
<script src="https://unpkg.com/react@17/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@17/umd/react-dom.development.js" crossorigin></script>
和主模块
<script src="./js/Main.js"></script>
我的问题是如何正确地将子组件导入父组件。
假设我想像这样将'./components/Message.js'导入'Main.js'
function Main() {
return (
<div>
<h1>Hello World</h1>
<Message />
</div>
)
}
const renderDiv = document.getElementById('chat-module')
ReactDOM.render(<Main />, renderDiv)
为此,我需要将 Message.js 导入 Main.js 但
import Message from 'components/Message'
会Uncaught SyntaxError: Cannot use import statement outside a module
出错。
到目前为止,我发现的唯一解决方案是将 Message.js 作为脚本添加到 index.html 中,并从 Main.js 作为 window.Message 调用它
这是唯一可用的解决方案,还是有更合适和更有效的方法来连接这些组件?
注意:提醒一下,我没有使用 npx create-react-app。这是一个使用 express 构建的现有应用程序。
解决方案
你试过了<script type="module" src="./js/Main.js">
吗?
参考:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules
推荐阅读
- ubuntu - cron被系统杀死
- maven - 覆盖 Databricks 依赖项
- git - 在非主分支中添加文件(仅)但不在主分支中
- android - 范围错误索引无效值不在范围内,0..1 包括 2 在飞镖颤振应用程序中
- neo4j - 在 Neo4j 中获取与节点的特定关系的计数
- mongodb - 在 mongo 脚本中的地图内添加条件
- protractor - 量角器未使用 Cucumber Reporter 捕获屏幕截图
- apache - 如何将嵌套的 json 数据加载到德鲁伊的单列中
- swiftui - 使用 SwiftUI List()、ForEach()、.onTapGesture WatchOS6 传递值的问题
- javascript - Angular 8 --base-href 自升级后无法正常工作