2016-05-31 14 views
6

Angularjs의 3 년 된 코드베이스에 react-redux를 통합 할 것을 고려하고 있습니다. 한 번에 모든 코드베이스를 리팩터링하지 않고, 팀이 개발할 새로운 기능을 통해 반응을 반복적으로 도입하려고합니다.기존 Angularjs 응용 프로그램에 react-redux 통합

  1. 이렇게하는 것이 가장 좋은 방법이 있습니까? (어떤 자원이라도 인정 될 것이다)
  2. ng로 쓰여진 옛 특징은 reacti-redux 부분을 포함 할 수 있는가? 아니면 재 작성해야 할까?
  3. 어떻게 동일한 API 호출을 수행하지 않을 수 있습니까? (둘 다 동일한 리소스가 필요한 경우)
  4. 함께 변경하지 않아야합니까?
+0

안녕하세요. 우리 팀이 비슷한 문제를 해결하려고 할 때 어떤 결정을했는지 알고 싶습니다. – Manu

+0

우리는 몇 달 동안 통합을 연기하기로 결정했습니다. 내 자신의 시간을 좀 빌려 줬어 :) –

+0

헤이 Alex, 당신은 일반 redux, 대신 반응 redux로 데이터 레이어를 변환에 대해 생각해 봤어? redux로 시작하면 데이터 계층을 추상화 할 수 있으며 데이터 요소를 변환하는 것보다 훨씬 쉽습니다. 이렇게하면 'ng'구성 요소를 유지하는 데 도움이됩니다. –

답변

0

나는 성공적이 제한이 내가 원래의 질문에 지적 브라운 필드에서 응용 프로그램을 마이그레이션했습니다.

이 솔루션은 두 가지 접근 방식을 기반으로합니다

  1. 작은 구성 요소 - 꽤 많이 포함되어있는 구성 요소입니다. 예 : 알림 드롭 다운.
  2. 내가 아직 이전 할 수없는 앱의 전체 부분 - 기본적으로 각도로 작성된 일부 경로 /보기. http://softeng.oicr.on.ca/chang_wang/2017/04/17/Using-AngularJS-components-directives-in-React/?utm_source=reactnl&utm_medium=email

    TIP :

두 여기에 제안 하나를 사용에게 유사한 기술에 접근 당신의 각도 의존성이 제대로 관리하는 경우가 훨씬 더 쉽다.

2
  1. 나는 특정 모범 사례의 모르겠지만, 나는 최근에 지금까지 큰 효과를 내 현재의 각도 1.5 응용 프로그램에서 NG-REDUX (https://github.com/angular-redux/ng-redux)를 사용하기 시작했다. Angular 코어를 유지하면서 Redux에서 단방향 데이터 흐름과 구조화 된 상태 관리의 이점을 얻으려면 정말 좋았습니다. 또한 한 번에 하나의 엔티티 모델로 점진적으로 마이그레이션 할 수 있습니다. 비록 내가 직접 사용하지는 않았지만, https://github.com/ngReact/ngReact은 Angular 지시어의 React 구성 요소를 래핑하는 데 사용할 수 있음을 알았습니다. 궁극적으로 독립형 반응 형 반응기를 사용하기를 원한다면 좋은 디딤돌이 될 수 있습니다.
  2. 기존 기능에 ng-redux를 통합하는 데 필요한 리팩토링이 있었지만 이미 컨트롤러 외부의 데이터 모델을 유지 관리하고 있다면 너무 나쁘지 않습니다. Ng-redux를 사용하면 컨트롤러에서 Action Creator 함수를 직접 호출 할 수 있습니다.이 함수는 대개 UI 작업 이벤트 처리기를 대체합니다.
  3. ng-redux를 사용할 때 redux-thunk와 함께 비동기 작업을 사용하여 API 호출을 쉽게 할 수 있습니다. 기존 각도 서비스를 사용하여 API에 요청한 다음 응답을 사용하여 표준 액션을 업데이트 상태로 보내면됩니다.
  4. 적어도 앱의 데이터 흐름을 표준화하려면 ng-redux를 통합하는 것이 좋습니다. 프로젝트를보다 잘 구성하는 데 도움이되며 리팩토링 방식에 따라 성능이 향상 될 수 있습니다. ngReact의 이점은 Angular 코어를 완전히 뺄 수있을 때까지 구성 요소를 천천히 변환하려고하지 않는 한 나에게 덜 명확합니다.
+0

고마워요! 그것은 좋은 생각 일지 모르지만 적어도 저에게는 너무 느린 마이그레이션입니다. 나는 react-redux가 Angular에서 전체 컨트롤을 취하고 다른 방향에서는 그렇지 않은보다 공격적인 솔루션을 구현하기 시작했습니다. 프로젝트를 아직 끝내지 않았으므로 필자는 필자의 필독을 쓸 수는 없지만, 끝나자 마자 공유 할 계획이다. –