Статьи

Преодоление реакции с другими популярными языками Интернета

React — это библиотека представлений, написанная на JavaScript, поэтому она не зависит от конфигурации стека и может появляться практически в любом веб-приложении, использующем HTML и JavaScript для своего уровня представления.

Поскольку React работает как ‘V’ в ‘MVC’, мы можем создать наш собственный стек приложений из наших предпочтений. До сих пор в этом руководстве мы видели, как React работает с Express, Node ES6 / JavaScript-фреймворком. Другими популярными, основанными на Node, матчами для React являются Meteor framework и Facebook Relay.

Если вы хотите воспользоваться преимуществами превосходной JSX-системы React на основе компонентов, виртуального DOM и сверхбыстрого времени рендеринга в существующем проекте, вы можете сделать это, внедрив одно из многих решений с открытым исходным кодом.

Поскольку 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 никогда не было проще!

Для примера приложения взгляните на этот репозиторий на 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>

Реагировать Пример

« `

Для очень популярного PHP-фреймворка Laravel есть библиотека react-laravel , которая позволяет React.js прямо из ваших представлений Blade.

Например:

php @react_component('Message', [ 'title' => 'Hello, World' ], [ 'prerender' => true ])

Флаг prerender указывает Laravel визуализировать компонент на стороне сервера, а затем смонтировать его на стороне клиента.

Посмотрите на этот отличный репозиторий для начинающих, чтобы получить пример работы 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’, имя: ‘Джон’)%>

« `

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 ( , document.getElementById (‘render-target’)); }); « `

Это создание экземпляра компонента 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>

Внутри Headline.jsx вы используете следующий код:

« `обычный импорт React, {Component, PropTypes} из ‘реакции’;

// Компонент заголовка — в нем будет отображаться отдельный заголовок новости из класса экспорта по умолчанию для повторного массива. Заголовок extends Component {render () {return (<li> {this.props.headline.text} </ li>); }}

Headline.propTypes = {// Этот компонент получает заголовок для отображения через объект React. // Мы можем использовать propTypes, чтобы указать, что требуется заголовок: PropTypes.object.isRequired,}; « `

Meteor готов к React и имеет официальную документацию .

Важный момент, на который следует обратить внимание: при использовании Meteor с React система шаблонов по умолчанию {{handlebars}} больше не используется, поскольку она больше не существует из-за присутствия React в проекте.

Поэтому вместо использования {{> TemplateName}} или Template.templateName для помощников и событий в вашем JS вы будете определять все в ваших компонентах View, которые являются подклассами React.component .

React может использоваться практически на любом языке, который использует уровень представления HTML. Преимущества React могут быть полностью использованы множеством потенциальных программных продуктов.

React превращает слой UI View в компонентный. Логическая работа с любым стеком означает, что у нас есть универсальный язык интерфейса, который могут использовать дизайнеры во всех аспектах веб-разработки.

React унифицирует интерфейсы наших проектов, брендинг и общую непредвиденную ситуацию во всех развертываниях, независимо от ограничений устройства или платформы. Кроме того, с точки зрения внештатной работы, работы с клиентами или внутри крупных организаций, React обеспечивает повторно используемый код для ваших проектов.

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

React является важной вехой в веб-разработке и может стать важным инструментом в коллекции любого разработчика. Не оставляй позади.