2017-01-05 6 views
2

Я новичок в реакторе, и я пытаюсь выяснить некоторые основы. В других механизмах шаблонов, таких как EJS или Jade, вы можете передавать переменную контекста при рендеринге файла вида в файле маршрутов/контроллеров. Однако я не нашел никакого способа сделать это с помощью React/jsx. Я должен отметить, что я работаю с Express.Как передать контекст в представление React/jsx?

Я действительно не уверен, что jsx - это механизм просмотра, или если React каким-то образом был встроен. В любом случае я не знаю, как передать контекст с сервера в файл вида.

Например, если я хотел загрузить информацию о профиле (которая хранится на сервере/backend), как бы передать это в файл представления jsx переднего конца в React/jsx?

ответ

2

это простой. В терминологии MVC существует беспорядок, но я думаю, что было бы хорошо сказать, что компонент React - это не просто «View», а «View + Controller».

В качестве прямой аналогии с шаблонами двигателей функция render() компонента является вашим шаблоном. И component.state (который является локальным для компонента) и component.props (аргументы, полученные от верхнего компонента), оба могут использоваться как «контекст».

Если вы хотите по-настоящему близкую аналогию с компонентом React в консервативной части JS-мира, то это Backbone's View (который снова является контроллером view +, если мы используем оригинальную терминологию MVC, как я сказал - это беспорядок) , Концептуально это одно и то же. JSX используется в render() вместо EJS (или что-то еще), вот и все.

Btw, React's context Концепция - это нечто иное. Подумайте об этом как реквизита, которые видны для всего поддерева компонентов, начиная с компонента, в котором выставлен context.

Например, если я хотел загрузить информацию профиля (которая хранится на сервере/бэкэнд), как бы передать это в файл представления jsx переднего конца в React/jsx?

В простейшем случае, вы создаете верхний уровень Реагировать компонент, который будет загружать вещи, которые нужны на горе (componentWillMount()), положить его в местный state, когда вы получите ответ от сервера (this.setState(...)) и пропускают элементы своего состояния (this.state) до подкомпонентов в качестве реквизита (<List items={ this.state.items } />) в своей функции render().

Когда state изменен this.setState(...), весь компонентный поддерево будет отображаться снова. Вот как это работает. В простейшем случае.

 Смежные вопросы

  • Нет связанных вопросов^_^