2016-11-14 10 views
0

우리는 Ruby on Rails에 웹 애플리케이션을 완벽하게 구축했습니다. 프런트 엔드는 백엔드와 밀접하게 연결됩니다. 우리는 점차 백엔드와 프론트 엔드를 분리하려는 단계에 있습니다. 우리는 UI 파트로 ReactJS 방식으로 가고 싶습니다. 우리는 전환을 위해 폭포 모델을 따르기를 원합니다.동종 Ruby on Rails 웹 애플리케이션에서 프런트 엔드 분리.

  1. 사용 보석 react-rails을 불러 반작용의 새로운 구성 요소를 구축 :

    우리는 두 가지 옵션이 있습니다. 천천히 기존 구성 요소를 React 구성 요소로 변환하십시오. 모든 구성 요소가 React 구성 요소로 변환되면 모든 React 구성 요소를 꺼내 전체 프론트 엔드를 분리하고 다른 곳에서 호스트합니다.

  2. 호스트 ReactJS 다른 곳. 점차적으로 각 구성 요소를 React 구성 요소로 변환하고,이를 새로운 호스팅 장소로 옮기고 Rails에서 제거합니다. 유일한 요소는 React 구성 요소가 Rails와 다른 위치에 위치한다는 것입니다. 앱 내에서 탐색하는 동안 다른 웹 사이트로 이동하는 느낌을 줄 수 있습니다.

경험을 공유하고 어떤 방법으로 우리가 진행해야 우리를 인도하시기 바랍니다. 우리의 최종 목표는 ReactJS에서 완벽한 프론트 엔드를 유지하고 Rails에서 백엔드를 만드는 것입니다. 그들은 API를 통해 통신하여 프론트 엔드와 백엔드 간의 결합을 완전히 제거합니다. 서버 렌더링 믹스에 레일을 유지하는 계획이있는 경우에만

감사

+0

나는 이것이 당신에게 어떻게 가는지를 궁금해합니다. 우리는 현재 내가 일하는 곳과 똑같은 일을하려고 노력하고 있으며 두 번째 접근 방식과 비슷한 것으로 생각했습니다. –

+0

Rails v5.1과 'webpacker' gem (2017 년에 릴리스 됨)을 사용하면 React를 (새로운) Rails 앱에 통합하는 것이 훨씬 쉽다는 것을 지적 할 가치가 있습니다. https : // medium.레일즈/반응식 레일즈/무료 튜토리얼 - 사용법 - 웹 패커 - 앤 - 레일즈 - 5-1-92af8e8d9d63 – XtraSimplicity

답변

1

사용 # 1 (권장하지 않음). 그렇지 않다면 # 2가 완전한 js 솔루션으로 처음부터 시작하는 것이 가장 좋은 옵션입니다. 새 뷰가 필요할 때 기존 레일 응용 프로그램에 디커플링 된 반응 구성 요소 라이브러리와 렌더링 파이프 라인을 만드는 경우 다른 사이트와 같은 느낌이 들지 않습니다. 그런 다음 모든보기 구성 요소를 변환하면 앱 논리를 마무리하고 완전히 전환 할 수 있습니다.

또 다른 옵션은 새로운 반응 구성 요소를 별도로 호스트 할 필요가 없다는 것입니다. 반응 구성 요소는 별도의 빌드주기를 거친 다음 기존 서버에 캐시되고 필요에 따라 레일에서 렌더링 될 수 있습니다.

1

저는 Ruby 중심 시스템에서 벗어나는 것이 좋습니다. http://ruby-hyperloop.io을 사용하여 Ruby에서 react.js 구성 요소를 빌드 할 수 있습니다. Hyperloop은 반응을위한 Ruby DSL (HyperReact)과 React 구성 요소의 ActiveRecord 모델에 대한 완벽한 액세스를 제공하는 HyperMesh를 포함합니다.

큰 장점은 클라이언트에서 데이터에 액세스하기 위해 API를 빌드 할 필요가 없으며 테스트 도구를 포함하여 기존 레일스 툴 체인을 사용할 수 있다는 것입니다.

HyperReact와 잘 연동되는 React.js 구성 요소의 거대한 라이브러리가 있습니다.

JS 루트를가는 것이 더 나을 것이라고 생각하는 이유가 무엇이든간에 나는 반응 레일을 권장합니다. 작동하며 잘 지원되며 사전 렌더링 (매우 중요한 개념입니다.)을 쉽게 처리 할 수 ​​있습니다. NPM 및 웹팩과도 쉽게 통합 할 수 있습니다.

+0

Rails v5.1과 'webpacker' gem (2017 년에 릴리스 됨), React를 (새로운) Rails 앱에 통합하는 것이 훨씬 쉽습니다. https://medium.com/react-on-rails/free-tutorial-how-to-use-react-with-webpacker-and-rails-5-1-92af8e8d9d63 – XtraSimplicity