2016-04-20 3 views
0

В настоящее время я работаю над проектом, в котором мы разрабатываем для нас интерфейс React/Flux. Мне говорят, что код пользовательского интерфейса необходимо преобразовать в GSP и включить в проект Grails, чтобы работать с нашим бэкэнд. Я чувствую, что перемещение пользовательского интерфейса в GSP приведет к аннулированию использования нашей реализации Flux (Reflux).Проект Grails with React/Flux

Моя первоначальная мысль заключается в том, что это неправильно, и я не нашел никакого использования Grails и Flux через поиск.

ответ

0

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

Вы можете использовать их вместе без проблем. Как, зависит от вас.

0

Вам говорят не так. GSP - это сервлеты Java. Единственная причина для смешивания React с серверной технологией - это изоморфное приложение, в котором вы должны скомпилировать свою JS до возвращения/нажатия ее на клиента. В этом случае вам нужно создать нечто похожее на сервлет на основе Rhino. В противном случае, относитесь к нему так же, как к любому другому статическому ресурсу.

2

Я занимаюсь производством приложения Grails, которое использует React в качестве front-end. Нет необходимости «конвертировать» код React/Flux в GSP - на самом деле это в значительной степени пожертвует преимуществами интерфейса React. Нет необходимости - Grails очень хорошо подходит для предоставления robust Restful backend для приложения React (или Angular или любого другого JS-фреймворка).

В зависимости от потребностей вашего приложения вы, вероятно, захотите предоставить успокоительный API для использования интерфейсом для использования/отправки по мере необходимости. Используйте URLMappings.groovy, чтобы указать конечные точки, к которым может обратиться приложение React. Вероятно, вы захотите использовать JSON в качестве носителя для отправки данных в приложение React - Grails' JSON views - это быстрое, гибкое и простое средство для рендеринга объектов домена Grails или других данных в полезную нагрузку JSON.

В Flux не должно быть никаких данных Grails-specificc - использовать его для управления и изменения вашего состояния в приложении React, возможно, путем переадресации вызовов от вашего диспетчера Flux (или создателя действия) к серверу Grails для извлечения данных и обновите свой магазин Flux.

Что касается GSP, моя рекомендация состоит в том, чтобы просто иметь вид GSP с barebones с вашего основного контроллера, который просто загружает Javascript, необходимый для запуска вашего приложения React. Если вы используете модуль Bundler как webpack, это может быть столь же просто, как связать свой файл bundle.js в вашей точки зрения и обеспечения корневой элемент, указанный в компоненте верхнего уровня:

<html> 
<head> 
    <title>My App</title> 
</head> 
<body> 

    <div id="app"></div> 
    <asset:javascript src="bundle.js"/> 

</body> 
</html> 

Обратите внимание, что для этого, чтобы работать, вы должны выводить ваш комплект webpack в grails-app/assets/javascripts, который я считаю самым простым способом загрузить приложение React в приложении Grails. Используя этот подход, нет необходимости загружать React, Flux или другие связанные библиотеки в Grails напрямую - просто создайте свой проект, используя стандартную JS toolchain (используя /package.json для управления вашими зависимостями) и обрабатывайте/объединяете все приложение в обычную JS, который может быть загружен конвейером активов Grails.

React делает отличный выбор в качестве ориентированной на взгляд библиотеки Javascript, которая не делает много предположений о вашей внутренней архитектуре. С твердым успокоительным api, основанным на Grails, и некоторыми разумными выборами в области оснастки и структуры проекта, React отлично подходит для современного одностраничного Javascript-интерфейса в приложении Grails.