Как экспортировать более одного компонента класса с помощью React JS?

Я новичок в React и хотел бы сохранить все мои компоненты в одном файле. Как мне экспортировать более одного компонента и сохранить их в одном файле?

    import React, { Component } from "react";

class MyText extends Component {
  render() {
    return (<div>
      <h1>
        Component</h1>
      <p>This class component is named MyText. I can re-use it's code by simply Rendering (fancy name for calling) it by it's class name and I won't have to re type it, however many times I will need it.</p>
    </div>);
  };
}

class GreetName extends Component {
  render() {
    return (
      <div>
       <h1>Hello, {this.props.name}</h1>;
       </div>
    );
  };
}

export default MyText;

Возможный дубликат Несколько компонентов React в одном модуле

Amanshu Kataria 28.04.2018 09:33
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
24
1
37 096
4

Ответы 4

Вместо того, чтобы использовать строку export default внизу, вы можете поместить экспорт перед каждым определением класса, например export class GreetName..., а затем, чтобы включить свои классы в другой файл, вы можете использовать import {MyText, GreetName} from 'your/file.js'

Звучит неплохо! Я тоже новичок в переполнении стека, как мне закрыть вопрос и отдать вам должное?

Tony Carbetta 28.04.2018 07:33

не закрывайте вопрос и не отмечайте его как принятый ответ.

Vick_Pk 09.10.2020 02:51

Вы можете сделать так, как сказал Джесс Кенни, или использовать экспорт имен в нижней части файла:

SomeComponent.js

import React, { Component } from "react";

class MyText extends Component {
  render() {
    return (<div>
      <h1>
        Component</h1>
      <p>This class component is named MyText. I can re-use it's code by simply Rendering (fancy name for calling) it by it's class name and I won't have to re type it, however many times I will need it.</p>
    </div>);
  };
}

class GreetName extends Component {
  render() {
    return (
      <div>
       <h1>Hello, {this.props.name}</h1>;
       </div>
    );
  };
}

export { MyText, GreetName };

А затем используйте это как:

import { MyText, GreetName } from './SomeComponent'

Я советую вам использовать один компонент для каждого файла, чтобы вы могли сохранить свой проект модульным. В ReactJS существует соглашение об экспорте одного компонента из файла и экспорте его в качестве экспорта по умолчанию.

Если это вспомогательный компонент, который используется только в конкретном случае, вы можете поместить его в тот же файл, что и функциональный компонент.

вау, правда? Просто кажется, что будет много лишних файлов. Я до сих пор не понимаю, почему, но я только начинаю работать с React, поэтому я уверен, что позже столкнусь с причиной, когда буду создавать более крупное приложение.

Tony Carbetta 28.04.2018 07:58

@TonyCarbetta Да. Следуя принципу Единственная ответственность, каждый компонент в идеале должен выполнять только одно действие. Если он в конце концов вырастет, его следует разложить на более мелкие подкомпоненты. Вы можете прочитать статью это в документации, и, возможно, это поможет вам понять.

Denys Kotsur 28.04.2018 08:03
export default secretContext;
export {taskData};

для экспорта двух функциональных компонентов

сделайте это в app.js

export default App;
export{New_component};

сделайте это в index.js

import App from './App';
import {Hari} from './App';

<App  name = {people.name}/>
<New_component msg = {people.msg}/>
  

убедитесь, что имя компонента начинается с заглавной буквы

Другие вопросы по теме