Machez
@Machez
Бу!

Как в ReactJS организовать подключение компонента из другого файла?

Уважаемые знатоки React! Подскажите, как правильно организовать подключение и использование компонента, который хранится в отдельном файле? В примере ниже мне нужно внутри файла main.js использовать компонент Header, который хранится в файле componets/header.js

Index.html:
<!DOCTYPE html>
<html lang="ru">
<head>

<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">

<link rel="stylesheet" href="/css/normalize.css">


	<link rel="stylesheet" href="https://unpkg.com/purecss@0.6.2/build/pure.css">
	<link rel="stylesheet" href="/css/style.css">

	<script src="https://unpkg.com/react@15/dist/react.js"></script>
	<script src="https://unpkg.com/react-dom@15/dist/react-dom.js"></script>
	<script src="https://unpkg.com/babel-standalone@6/babel.js"></script>

       <script src="/js/main.js" type="text/babel"></script>

	<title>Тайтл</title>

</head>
<body>

<div id="layout"></div>

</body>
</html>


/js/components/header.js:
"use strict";

class Header extends React.Component {
    render() {
        return <header>This is Header</header>;
    }
}


/js/main.js:
'use strict';

import Header from 'components/header';

ReactDOM.render(
    <Header />,
    document.getElementById( 'layout' )
);
  • Вопрос задан
  • 1421 просмотр
Решения вопроса 1
maxfarseer
@maxfarseer
https://maxpfrontend.ru, обучаю реакту и компании
Вам нужно собирать бандл с помощью Wepback / Browserify и т.д. Require / import не сработают, даже если указать text/babel.

Немного с SO:
stackoverflow.com/a/36698789/1916578 (почему не работает require/import)
stackoverflow.com/a/20578692/1916578 (на всякий случай, если вы не используете локальный сервер - здесь есть информация об ошибке и что с этими делать) + локальный сервер легко поднять с помощью http-server
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 23:03
1 руб./за проект
23 нояб. 2024, в 22:38
2500 руб./за проект
23 нояб. 2024, в 22:03
3000 руб./за проект