React — это библиотека представлений, написанная на JavaScript, поэтому она не зависит от конфигурации стека и может появляться практически в любом веб-приложении, использующем HTML и JavaScript для своего уровня представления.
Поскольку React работает как ‘V’ в ‘MVC’, мы можем создать наш собственный стек приложений из наших предпочтений. До сих пор в этом руководстве мы видели, как React работает с Express, Node ES6 / JavaScript-фреймворком. Другими популярными, основанными на Node, матчами для React являются Meteor framework и Facebook Relay.
Если вы хотите воспользоваться преимуществами превосходной JSX-системы React на основе компонентов, виртуального DOM и сверхбыстрого времени рендеринга в существующем проекте, вы можете сделать это, внедрив одно из многих решений с открытым исходным кодом.
PHP
Поскольку PHP является языком сценариев на стороне сервера, интеграция с React может иметь несколько форм:
- Использование response-php-v8js
- Обработка запроса / ответа на стороне сервера (с маршрутизатором, например, Alto )
- Вывод JSON через json_encode ()
- Обтекание шаблона, например Twig
Рендеринг на стороне сервера
Для рендеринга компонентов React на сервере на GitHub имеется библиотека.
Например, мы можем сделать следующее в PHP
с этим пакетом:
« `php <? php // библиотека $act_source = file_get_contents (‘/ path / to / build / Reaction.js’); // весь пользовательский код объединен $ app_source = file_get_contents (‘/ path / to / custom / components.js’);
$ rjs = новый ReactJS ($act_source, $ app_source); $ rjs-> setComponent (‘MyComponent’, массив (‘any’ => 1, ‘props’ => 2));
// выводим обработанную разметку echo ‘<div id = «here»>’. $ rjs-> getMarkup (). </ DIV> ‘;
// загрузить JavaScript каким-либо образом — сцепленным, из CDN и т. д. // включая response.js и custom / components.js
// init client echo ‘ «;
// повторяем setComponent (), getMarkup (), getJS () по мере необходимости // для визуализации большего количества компонентов « `
Сила объединения React с любым языком сценариев на стороне сервера заключается в возможности передавать React данные и применять свою бизнес-логику на сервере и на стороне клиента. Восстановление старого приложения в приложение Reactive никогда не было проще!
Использование PHP + Alto Router
Для примера приложения взгляните на этот репозиторий на GitHub .
Настройте свой AltoRouter
следующим образом:
« `php <? php // Настройка маршрутизатора require_once ‘include / AltoRouter / AltoRouter.php’; $ router = new AltoRouter (); $ viewPath = ‘views /’;
// Маршрутизатор соответствует // — // Ручная $ router-> map (‘GET’, ‘/’, $ viewPath.’Actjs.html ‘,’actjs’);
$ result = $ viewPath. ‘404.php’;
$ match = $ router-> match (); if ($ match) {$ result = $ match [‘target’]; }
// Возвращаем совпадение маршрута, включаем $ result;
?> « `
С установкой AltoRouter
, обслуживающей страницы вашего приложения для указанных маршрутов, вы можете просто включить свой код React
в разметку HTML и начать использовать ваши компоненты.
JavaScript:
« `javascript« использовать строгий »;
var Comment = React.createClass ({displayName: «Комментарий»,
render: function render () {var rawMarkup = отмечен (this.props.children.toString (), {sanitize: true}); возврат : {__html: rawMarkup}})); }}); « `
Убедитесь, что вы включили библиотеки React, а также AltoRouter
внутри тега body, который будет обслуживаться из вашего приложения PHP AltoRouter
, например:
« `html <! DOCTYPE html>
« `
Laravel Пользователи
Для очень популярного PHP-фреймворка Laravel есть библиотека react-laravel
, которая позволяет React.js прямо из ваших представлений Blade.
Например:
php @react_component('Message', [ 'title' => 'Hello, World' ], [ 'prerender' => true ])
Флаг prerender
указывает Laravel визуализировать компонент на стороне сервера, а затем смонтировать его на стороне клиента.
Пример Laravel 5.2 + React App
Посмотрите на этот отличный репозиторий для начинающих, чтобы получить пример работы Laravel + React от Spharian.
Чтобы визуализировать код React внутри Laravel, задайте источник файлов React внутри index.blade.php
body index.blade.php
, добавив, например, следующее:
html <script src="{{ asset('js/my-react-code.js') }}"></script>
.СЕТЬ
Используя платформу ReactJS.NET, вы можете легко внедрить React в свое приложение .NET.
Установите пакет ReactJS.NET в IDE Visual Studio через менеджер пакетов NuGET для .NET.
Найдите доступные пакеты для «ReactJS.NET (MVC 4 и 5)» и установите. Теперь вы сможете использовать любой код расширения .jsx в своем приложении asp.net.
Добавьте новый контроллер в ваш проект, чтобы начать работу с React + .NET, и выберите «Пустой контроллер MVC» для вашего шаблона. Как только он будет создан, щелкните правой кнопкой мыши на return View()
и добавьте новый вид со следующими данными:
- Название представления: Индекс
- Просмотр двигателя: Razor (CSHTML)
- Создать строго типизированное представление: не отмечен
- Создать как частичное представление: не отмечен
- Использовать макет или главную страницу: не отмечен
Теперь вы можете заменить код по умолчанию следующим:
« `html @ {Layout = null; }
<script src = «@ Url.Content (» ~ / Scripts / Example.jsx «)»> </ script>« `
Теперь нам нужно создать файл Example.jsx
указанный выше, поэтому создайте файл в своем проекте и добавьте свой JSX
следующим образом:
« `javascript var CommentBox = React.createClass ({render: function () {return (<div className =» commentBox «> Привет, мир! Я CommentBox. </ div>);}}); ReactDOM.render (
, document.getElementById (‘content’)); « `
Теперь, если вы нажмете кнопку « Play
в Visual Studio IDE, вы должны увидеть пример окна комментария Hello World.
Вот подробное руководство по написанию компонента для asp.net.
Рельсы
Используя react-rails
, вы можете легко добавить React в любое приложение Rails (3.2+). Чтобы начать, просто добавьте драгоценный камень:
rails gem 'react-rails', '~> 1.7.0'
и установить:
rails bundle install
Теперь вы можете запустить скрипт установки:
rails rails g react:install
Это приведет к двум вещам:
- Файл манифеста
components.js
вapp/assets/javascripts/components/
; это где вы положите все свои компоненты кода. - Добавление следующего в ваш
application.js
:
rails //= require react //= require react_ujs //= require components
Теперь код .jsx
будет отображаться, и вы можете добавить блок React к вашему шаблону, например:
« `rails <% = реаги_компонент (‘HelloMessage’, имя: ‘Джон’)%>
« `
Ruby JSX
Babel находится в основе Ruby-реализации gem react-rails
и может быть настроен следующим образом:
ruby config.react.jsx_transform_options = { blacklist: ['spec.functionName', 'validation.react', 'strict'], # default options optional: ["transformerName"], # pass extra babel options whitelist: ["useStrict"] # even more options }
После того как .js.jsx
будет установлен в ваш проект, перезапустите сервер, и все файлы .js.jsx
будут преобразованы в ваш конвейер ресурсов.
Для получения дополнительной информации о react-rails
, перейдите к официальной документации .
питон
Чтобы установить python-react
, используйте pip так:
bash pip install react
Теперь вы можете визуализировать код React с помощью приложения Python, .jsx
путь к компонентам .jsx
и предоставив приложение серверу рендеринга. Обычно это отдельный процесс Node.js
Чтобы запустить сервер рендеринга, следуйте этому простому короткому руководству .
Теперь вы можете запустить свой сервер так:
bash node render_server.js
Запустите приложение на Python:
bash python app.py
И загрузите http://127.0.0.1:5000 в браузере, чтобы увидеть ваш рендеринг кода React.
Джанго
Добавьте react
на ваш INSTALLED_APPS
и предоставьте некоторую конфигурацию следующим образом:
« `bash INSTALLED_APPS = (#… ‘реагировать’,)
REACT = {‘RENDER’: не DEBUG, ‘RENDER_URL’: ‘http://127.0.0.1:8001/render’,}
« `
метеор
Чтобы добавить React в свой метеоритный проект, сделайте это через:
bash meteor npm install --save react react-dom
Затем в client/main.jsx
добавьте следующее, например:
« `bash import React from ‘реагировать’; импортировать {Метеор} из ‘Метеор / Метеор’; import {render} из ‘response-dom’;
импортировать приложение из ‘../imports/ui/App.jsx’;
Meteor.startup (() => {render (
Это создание экземпляра компонента App
React, который вы определите в imports/ui/App.jsx
, например:
« `bash import React, {Component} из ‘response’;
импортировать заголовок из ./Headline.jsx;
// Компонент App — представляет весь класс экспорта приложения по умолчанию. Приложение extends Component {getHeadlines () {return [{_id: 1, text: ‘Легализация медицинской марихуаны идет по всему миру!’ }, {_id: 2, текст: «Мэтт Браун входит в культ саентологии»}, {_id: 3, текст: «Глубокая паутина: мечта преступников или завораживающая свобода?» },]; }
renderHeadlines () {вернуть this.getHeadlines (). map ((заголовок) => (<ключ заголовка = {headline._id} заголовок = {заголовок} />)); }
render () {return (<div className = «container»> <header> <h1> Последние заголовки </ h1> </ header>
<UL> {this.renderHeadlines ()} </ UL> </ DIV> ); }} `` `
Внутри Headline.jsx
вы используете следующий код:
« `обычный импорт React, {Component, PropTypes} из ‘реакции’;
// Компонент заголовка — в нем будет отображаться отдельный заголовок новости из класса экспорта по умолчанию для повторного массива. Заголовок extends Component {render () {return (<li> {this.props.headline.text} </ li>); }}
Headline.propTypes = {// Этот компонент получает заголовок для отображения через объект React. // Мы можем использовать propTypes, чтобы указать, что требуется заголовок: PropTypes.object.isRequired,}; « `
Meteor готов к React и имеет официальную документацию .
Больше нет {{handlebars}}
Важный момент, на который следует обратить внимание: при использовании Meteor с React система шаблонов по умолчанию {{handlebars}}
больше не используется, поскольку она больше не существует из-за присутствия React в проекте.
Поэтому вместо использования {{> TemplateName}}
или Template.templateName
для помощников и событий в вашем JS вы будете определять все в ваших компонентах View, которые являются подклассами React.component
.
Вывод
React может использоваться практически на любом языке, который использует уровень представления HTML. Преимущества React могут быть полностью использованы множеством потенциальных программных продуктов.
React превращает слой UI View в компонентный. Логическая работа с любым стеком означает, что у нас есть универсальный язык интерфейса, который могут использовать дизайнеры во всех аспектах веб-разработки.
React унифицирует интерфейсы наших проектов, брендинг и общую непредвиденную ситуацию во всех развертываниях, независимо от ограничений устройства или платформы. Кроме того, с точки зрения внештатной работы, работы с клиентами или внутри крупных организаций, React обеспечивает повторно используемый код для ваших проектов.
Вы можете создавать свои собственные библиотеки компонентов и сразу же приступить к работе внутри новых проектов или обновить старые, быстро и легко создавая полностью реактивные изометрические интерфейсы приложений.
React является важной вехой в веб-разработке и может стать важным инструментом в коллекции любого разработчика. Не оставляй позади.