【发布时间】:2022-01-14 01:39:22
【问题描述】:
我有一个由 Vanilia Javascript 构建的旧网站。 现在我将它转换为 React。 所以我要在 HTML 页面中渲染复合 React(Typescript) 组件。 但它不起作用。 这是我的代码。
app.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 页面中呈现我的组件? 如果是,请任何人帮助我。
【问题讨论】:
-
您当前正在浏览器中构建您的组件,这被认为是一种不好的做法,并且对于没有大量手动工作的任何实际项目都不会。我建议研究不同的捆绑程序。我会推荐parcel,因为它很容易设置并且几乎不需要配置。您需要先阅读他们的入门指南。
标签: javascript html reactjs typescript