2016-05-31 43 views
6

Tepkir-redux'u 3 yıllık bir Angularjs kod listesine entegre etmeyi düşünüyorum. Tüm codebase'leri bir seferde yeniden düzenlemeyi, daha sonra takımımın geliştireceği yeni özellikler aracılığıyla tepki-redux'u tanıtmayı istemiyorum.Mevcut bir Angularjs uygulamasına tepki redüksiyonunu entegre etme

  1. Bunu yapan en iyi uygulamalar var mı? (herhangi bir kaynak takdir edilecektir)
  2. Eski bir özellik (ng ile yazılmış) tepki redüks parçaları içeriyor mu yoksa yeniden yazmam gerekiyor mu?
  3. Aynı API çağrılarını yapmayı nasıl önleyebilirim? (eğer ikisi de aynı kaynağa ihtiyaç duyarsa)
  4. Değişikliği hep birlikte yapmamalı mıyım?
+0

Merhaba Alex. Ekibimizin benzer bir sorunu çözmeye çalıştığı sırada hangi kararı aldığınızı (ve umarım neden) bilmek isterim. – Manu

+0

Entegrasyonu birkaç ay ertelemeye karar verdik. Kendime biraz zaman aldım :) –

+0

Hey Alex, veri katmanını düz redux'a dönüştürmek yerine tepki-redux yapmayı düşündün mü? Eğer redux ile başlarsanız, * _ * veri katmanını soyutlayabileceksiniz, ki bu da veri _and_ ui bileşenlerini dönüştürmekten çok daha kolay olabilir. Bu, 'ng' bileşenlerini tutmanıza yardımcı olabilir. –

cevap

0

başarıyla sınırlamalar Ben orijinal soruya işaret kahverengi-alanın altında uygulamayı göç ettik.

çözüm iki yaklaşıma dayanmaktadır:

  1. Küçük Bileşenlerinin - hemen hemen bulunan bileşenleridir. Örneğin, bildirimler açılır.
  2. Henüz taşıyamayacağım Uygulamanın bir kısmı - temel olarak Angular'de yazılmış bazı yollar/görünümler. http://softeng.oicr.on.ca/chang_wang/2017/04/17/Using-AngularJS-components-directives-in-React/?utm_source=reactnl&utm_medium=email

    İPUCU:

İkisi burada önerilen birine kullanacağım benzer bir teknik yaklaştı sizin Açısal bağımlılıkları düzgün yönetilen eğer çok daha kolay olur.

2
  1. Ben herhangi bir özel en iyi uygulama bilmiyorum ama son zamanlarda bugüne kadar büyük etkisi benim şimdiki Açısal 1.5 app ng-redux (https://github.com/angular-redux/ng-redux) kullanmaya başladı. Angular çekirdeği korurken, tek yönlü veri akışının ve Redux'tan yapılandırılmış devlet yönetiminin faydalarını kazanmak gerçekten çok güzeldi. Bu aynı zamanda kademeli olarak geçiş yapmanıza izin verecek, aynı anda tek bir varlık modeli. Kullanmamasına rağmen, Angular direktiflerinde React bileşenlerini sarmak için https://github.com/ngReact/ngReact'un mevcut olduğunu görüyorum. En sonunda reaksiyonu redux bağımsız olarak kullanmak için arıyorsanız, bu iyi bir basamak taşı olabilir.
  2. ng-redux'u varolan özelliklere entegre etmek için bazı refactoring gerekiyordu, ancak denetleyicilerin dışındaki verileriniz için modelleri sürdürüyorsanız çok da kötü değil. Ng-redux, doğrudan Action Creator işlevlerini doğrudan UI eylem olay işleyicilerinden alacak olan denetleyicinizden çağırmanızı sağlar.
  3. ng-redux kullanırken, reddetme ile birlikte Async Actions kullanarak API çağrılarınızı kolayca yapabilirsiniz. API'nizi istemek için mevcut Angular hizmetlerini kullanabilir ve ardından durumu güncelleştirmek için standart bir Eylem göndermek için yanıtı kullanabilirsiniz.
  4. Uygulamanızın veri akışını standartlaştırmak için ng-redux'u en azından entegre etmek kesinlikle buna değdiğini söyleyebilirim. Projenizi daha iyi düzenlemenize yardımcı olacak ve nasıl yeniden düzenlediğinize bağlı olarak performansı artıracaktır. Bileşenleri yavaşça Açısal göbeği tamamen boşaltabilene kadar yavaşça dönüştürmüyorsanız, ngReact'ın yararı bana daha az açıktır.
+0

Teşekkürler! Bu iyi bir fikir olabilir ama en azından benim için çok yavaş bir göç. Tepkir-redux'un açısal kontrolü ele alması için daha agresif bir çözüm uygulamaya başladım. Projeyi henüz bitirmedim, bu yüzden bu konudaki çalışmalarımı yazılamam - ama en kısa sürede paylaşmayı planlıyorum. –