[英]How to integrate compound React(Typescript) component into html page
我有由 Vanilia Javascript 建立的旧网站。 现在我将它转换为 React。 所以我要在 HTML 页面中渲染复合 React(Typescript) 组件。 但它不起作用。 这是我的代码。
应用程序.html
<body>
<div id="test-id">
</div>
<script src="https://unpkg.com/react@15/dist/react.min.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@15/dist/react-dom.min.js" crossorigin></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.24.0/babel.js"></script>
<script type="text/tsx" src="../test/component/Test.tsx"></script>
</body>
我的组件 - Test.tsx
import { makeStyles, ThemeProvider } from '@material-ui/core';
import { Web3Provider } from '@ethersproject/providers';
import { useWeb3React } from '@web3-react/core';
import { useEffect, useState } from 'react';
import Header from '../Layout/Header';
import { api } from '../../services/api/api';
import TestMain from './TestMain';
import Footer from '../Footer/Footer';
const useStyles = makeStyles((theme) => ({
... some styles
}));
type Props = {};
const Test: React.FC<any> = () => {
const classes = useStyles();
let data: [] = [...example data]
return (
<div className={classes.root}>
<Header login={true} color="primary"/>
<main className={classes.main}>
<TestMain data={data} />
</main>
<Footer />
</div>
);
}
ReactDOM.render(<Test />, document.getElementById("test-id"))
我为此找到了很多示例,但它是一个简单的组件。 它对我有用。 但是当我尝试在 HTML 中渲染我的组件时,它不起作用。 我的组件包括外部组件、Material UI 等。是否可以在 HTML 页面中呈现我的组件? 如果是,请任何人帮助我。
这可能不容易。
(注意:实际上我现在正在考虑 webpack 设置。我从未使用过parcel ,正如您对问题的评论中所建议的那样,我不知道那里的可能性)
HTML 和 React 应用程序源代码是非常不同的技术,基本上:
React 代码对 static HTML 文件一无所知,而 HTML 文件无法编译 React 代码。
React 应用程序包括例如这些技术:
所有这些单独的技术都有解决方案(或多或少),但结合起来会变得相当复杂,而且将整个 HTML 网站重构为 React 代码可能会更少工作(或者更有效地一次完成所有工作,而不是位一点一点)。
有一些不同的方法:
ReactDOM.render()
在一处或多处也可以看看:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.