Если вы используете npx create-react-app my-app
для создания приложения - под капотом вы получите Babel и webpack .
Сборщик, такой как webpack или Parcel, позволяет писать модульные код и объедините его в небольшие пакеты для оптимизации времени загрузки.
Если вы добавите React в какое-либо существующее приложение, просто добавив React / Babel JS файлы, как вы
<!-- Load React. -->
<script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>
....
вы можете использовать JSX, но вам, вероятно, не хватает сборщика, поэтому вы не можете делать такие вещи, как:
import Thanks from './thanks';
Чтобы решить эту проблему, вы можете добавить какой-нибудь сборщик в свой проект (, и это, вероятно, правильный способ исправить это , особенно если у вас большое приложение)
или вы можете просто поместить свой код React в файлы JS (или один файл) и загрузить их вместе с React JS файл (ы) с использованием <script></script>
:
<!-- Load React. -->
<script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>
<!-- Custom files or it can be a single file -->
<script src="/js/my-thanks-component.js" type="text/babel"></script>
<script src="/js/my-another-component.js" type="text/babel"></script>
<script src="js/src/index.js" type="text/babel"></script>
В этом случае вам не нужно никуда делать импорт, потому что вы все равно загрузите все свои компоненты, поэтому вы можете просто использовать их всякий раз, когда вы нужно.
Например:
my-com компоненты. js
class Thanks extends React.Component {
constructor(props) {
super(props);
}
render() {
return (
<p>
Thanks you for liking!
</p>
);
}
}
class Like extends React.Component {
constructor(props) {
super(props);
this.state = { liked: false };
}
render() {
if (this.state.liked) {
return <Thanks />;
}
return (
<button onClick={() => this.setState({ liked: true }) }>
Like
</button>
);
}
}
А потом загружаете:
<script src="my-components.js" type="text/babel"></script>
<script src="js/src/index.js" type="text/babel"></script>