2017-04-09 83 views
12

Sıfırdan yeni (web + native) proje (orta boy uygulama) başlatmak zorunda. JS çerçevelerinin bolluğu ve özellikle son birkaç yıl içinde uygulanmasından dolayı, her zamanki yığınımda ikinci bir şüphem var.Relay vs Grafux ve React-Native ile Apollon vs Apollo

REST API'leri aracılığıyla iletişim kurarak arka uçta Node ve MongoDB ile birlikte ön uçta react + redux kullanıyorum.

Bu yeni proje için Web + Düğüm + PostgreSQL için React-Native + React Native ile çalışmaya karar verdim. Ancak, veri getirme ve devlet/mağaza yönetimi için hangi çerçeveyi kullanmam gerektiğini merak ediyorum.

Şimdiye kadar redux benim için güzel çalıştı. Ancak, JS evriminin doğası gereği. Geçmişte kullandığım aynı yığına gidip biraz kuşkuluyum. Ben her çerçeve kullanmanın yararlarını belirten birçok makale okudum

React-Native + React-Native-For-Web + Redux + GraphQL + Node + PostgreSQL 


React-Native + React-Native-For-Web + Relay + GraphQL + Node + PostgreSQL 


React-Native + React-Native-For-Web + Apollo + GraphQL + Node + PostgreSQL 

aşağıdaki yığını ile gitmek, ama içerik ve makalelerin miktarı biraz korkutucu ise

avantajları ve dezavantajları neler vardır. Doğru ya da yanlış bir cevabın olmadığını anlıyorum. Bununla birlikte, yukarıda belirtilen yığının güzelce birlikte akılda tutulduğunu bilmek daha iyidir - daha az öğrenme eğrisi, iyi dokümantasyon, sürdürülebilirlik, daha az geçici çözüm.

cevap

22

Eğer React + Redux geçmişinden geliyorsanız, o zaman Apollo sizin için yola çıkmalı!

Not: GraphQL için tam bir yeni gelen iseniz, size Röle ve Apollo hem öğreticiler bulacaksınız How to GraphQL göz atmanızı öneririz. bilginin

Birkaç parça:

  • Röle çok güçlü ama aynı zamanda son derece karmaşıktır ve kayda değer bir öğrenme eğrisi ile birlikte gelir.
  • Apollo, Redux'un üzerine inşa edilmiş olsa da, bir geliştirici olarak sizin için gerçekten uygun değildir, çünkü mağaza sizden gizlenmiştir. Bununla birlikte, Redux'daki gibi benzer kavramlar örn. Mağazayı updateQueries ile güncellemek için. Eğer
  • Apollo ile, aynı zamanda realtime subscriptions
  • Kesinlikle Apollo veya Relay kullanarak ve gitmiyor karşı öneriyoruz kullanabilirsiniz sunucudan önbelleğe alınmış verileri dışındaki devlet yönetmek istiyorsanız
  • Ayrıca combine the Apollo store with your own Redux store oldukça straightfoward var Sadece Redux, her iki çerçevenin de sorguları, mutasyonları, önbelleğe alma ve UI güncellemelerini gönderirken omuzlarınızda kayda değer bir iş çıkarmasını sağlar. Ancak, daha hafif bir GraphQL istemcisi arıyorsanız, Lokka'a göz atmak isteyebilirsiniz.

daha fazla arka plan bilgi için Relay ve Apollo karşılaştıran bu in-depth article bir göz atın.

Relay ve Apollo hakkında daha fazla bilgi edinmek isterseniz, How to GraphQL eğitim web sitesine bakın.

Bu arada, kendiniz oluşturmak istemiyorsanız arka uç için başka bir seçenek Graphcool olacaktır (sorumluluk reddi beyanı: Onlar için çalışıyorum :)).

+1

Detaylı yanıt için teşekkürler. Geliştirme döngüsünü hızlandırmak açısından (graphql-server ve Graphcool) arasındaki en büyük farkın ne olduğunu söyleyebilir misiniz? Graphql-server ve GraphCool birbirinden nasıl farklıdır. "Graphql-server" hakkında çok fazla şey bilmeden – zaq

+1

, bence asıl fark, Graphcool'un tam gelişmiş ve barındırılan bir çözüm sunmasıdır, "graphql-server" ise kendi GraphQL sunucunuzu oluşturmanıza yardımcı olan bir araçtır. Hedeflerinizin ne olduğuna bağlı olarak, biri ya da diğeri daha uygun olabilir :) Eğer GraphQL'in sunucuda nasıl çalıştığı hakkında daha fazla bilgi edinmek istiyorsanız, 'graphql-server' kesinlikle size daha iyi hizmet verecektir! Sadece bir uygulamayı en hızlı şekilde oluşturmak istiyorsanız, herhangi bir sunucuyla ilgili çalışma yapmanız gerekmediğinden Graphcool daha yararlı olabilir. – nburk

+0

Teşekkürler. Graphcool dokümanlarını derinlemesine incelemem gerek. Şu anda sunucularınızda hangi verileri sakladığınızı merak ediyorum. Örneğin, uygulamam Heroku'da barındırılıyorsa. Barındırılan uygulamam, Graphcool ile nasıl iletişim kuruyor ve sunucularınızda hangi veriler depolanıyor? – zaq

0

Öğrenme Apollo GraphQL with React and Apollo

Ben Röleli hiçbir deneyime sahip, ancak zaman bir faktör ise, Apollo iyi bir çözüm olabilir bu yüzden, öğrenmek zor duymuş, ben Udemy yaptım bu kursla çok yapılabilir :) İyi şanslar