React’e Giriş, Bölüm 4

Sonunda bu React’in küçük tanıtımının son bölümüne vardık. Mantıksal olarak boruda birçok şey bıraktım, bu yüzden gelecekte JS geliştirme yığınının farklı yönlerine odaklanacağımız daha fazla gönderiyi dışlamıyorum, ancak bu son yazı ile zaten gerekli temel fikirlere sahipsiniz. büyümek ve yalnız daha iyi olmak için. Geçen hafta işleri çok ilginç bir noktada bitirdik. Amacımız, istedikleri şekilde ekleyebileceğiniz veya silebileceğiniz birçok sayıya sahip küçük bir uygulama oluşturmaktır:

Redux tabanlı React ve WordPress mağaza bileşenleri ile birkaç sayım uygulanır.
Son yazıyı bitirdiğimizde, başvuru durumumuzu izlemek için olağanüstü bir mağazamız vardı. Bu, nihayet UI oluşturmak için ihtiyacımız olan tüm temellere sahip olduğumuz anlamına gelir. Bugün, React bileşeninin Redux tabanlı WordPress mağazamızla nasıl bağlanacağını göreceğiz, böylece arabirim mağazalarda ve kullanıcı etkileşimlerinde durumunu güncellememiz durumunu güncelleyecek. Geçen hafta ödev için çözüm ama bunu yapmadan önce, geçen hafta sizin için bıraktığım ödevleri hızlı bir şekilde gözden geçirelim. Temel olarak, artık bir sözlük kullanmamayı, ancak nesne dizisini kullanmanız için mağazayı yeniden yerleştirmenizi istiyorum:
Const originalStore = {x: 1, y: 2,}; const newstore = [{id: ‘x’, değer: 1}, {Id: ‘y’, değer: 2},]; Bu güncellemeyi mağazanıza uygulamak için ne gibi değişiklikler yapıyorsunuz? Pekala, her şeyi hızlı bir şekilde gözden geçirelim! Depolamanın eylemi zaten sahip olduğumuzla aynıdır, bu yüzden umarım burada hiçbir şey değiştirmezsiniz, çünkü bu gerekli değildir. Geçen hafta gördüğünüz gibi, eylem mağazayı doğrudan güncellemedi (veya erişmedi) ve bu nedenle mağazamızın altında yatan yapıdaki her değişiklik burada etkilemeyecek. Ve tam olarak aksiyonlarımızda hala sahip olduğumuz şey budur. Dışa aktarma işlevi addCounter (Counterid) {return {type: ‘add_counter’, CounterId,}; } Dışa aktarma işlevi removecounter (Counterid) {return {type: ‘remove_counter’, CounterId,}; } dışa aktarma işlevi setCounterValue (CounterID, değer) {return {type: ‘set_counter_value’, CounterID, değer,}; } Singling Sounder, önceki duruma ve gönderilen işlemlere göre durumun yenilenmesinden sorumlu bir işlevdir. Bu durumda, uygulama durumumuzu depolayan veri yapısını değiştirmek istediğimiz için, damperleri yeniden yerleştirmemiz gerekiyor:
{Harita, bul, olmadan} ‘lodash’tan {harita, bulma}; Dışa aktarma varsayılan işlev redüktör (durum = [], action) {switch (action.type) {case ‘add_counter’: return [… durum, {id: action.counterid, değer: 0},]; Case ‘remove_counter’: Durum (durum, find (durum, {id: action.counterid}) olmadan döndür; Case ‘set_counter_value’: dönüş haritası (durum, (sayaç) => action.id === action.counterid? {Counter, değer: action.value}: sayaç); } dönüş durumu; } Tahmin edebileceğiniz gibi, burada yapmamız gereken, boş nesnenin {} durumunun varsayılan değerini boş bir diziye [] değiştirmektir. Ardından, yeni bir mağazayı doğru bir şekilde güncelleme eylemi için her bir vakayı sadece anahtar bloğumuzda ayarlamamız gerekir. Temel olarak, bu, diziye nesneyi eklemek, silmek veya güncellemek içindir. Sonunda seçicilerimiz.js dosyamız var. Geçen hafta gördüğümüz gibi, seçmenler mevcut başvurumuzun statüsünü ve ihtiyaç duyabileceğimiz diğer parametreleri aldılar ve talep edilen değeri bu durumdan altılar. Kaydetilecek durum yöntemini değiştirdiğimiz için, seçmenlerimizi de değiştirmemiz gerekiyor: {harita, bul} ‘dan {harita, bul}; Dışa aktarma işlevi getCounterids (durum) {return map (durum, ‘id’); } Dışa aktarma işlevi GetCounterValue (durum, CounterID) {const Countain = find (durum, {id: CounterID}) || {}; geri dönüş. Değer; } Bir kez daha, bu büyük bir sorun değil … ama umarım haklısın
Örneğimizde, yalnızca iki seçimin var, bu yüzden yalnızca iki işlevi yeniden yerleştirmemiz gerekiyor. Birincisi, harita ile çok kolay ulaşabileceğimiz tüm sayımlarımızın tanımlanmasını geri yüklemekten sorumludur. İkincisi, belirtilen hesaplama değerini geri yükler (veya verilen sayaçlar mağazamızda bulunamazsa tanımsız), bu nedenle tek yapmanız gereken kimlik sayısını arayın, Lodash, Bul ve Döndürme Değer Yardımcısı Asistan Yardımcı işlevini kullanan bir karşıittir. . Son bir not, sizden mağazanızı değiştirmenizi istememin nedeni, aşağıdaki dersleri öğrenebilmenizdir: Bunun gibi bir mağaza kullanmanın ana avantajı, kara kutu gibi davranmalarıdır – düzenlemenin dahili olarak olma şeklini tamamen değiştirebilirsiniz. Ve hepsi beklendiği gibi çalışacak, arayüz (yani eylemler ve seçmenler) değişmeden.
Bugün oluşturmak istediğimiz uygulama.
ve her sayaçla birbirleriyle bağımsız olarak yönetin. Bölüm 2’de uyguladığımız kullanıcı arayüzünde sahip olduğumuz şeylere ne gibi değişiklikler yapmamız gerekiyor? Eh, (1) her sayıyı sil düğmesini içerecek şekilde değiştirmek ve (2) yeni bir sayım eklemek için yeni bir düğme olacak şekilde uygulamayı değiştirmek için açıkça gereklidir. Öyleyse bunu yapalım! İlk olarak, SRC/Components/Counter.js dosyasını açın ve yeni Sil düğmesini ve yeni Ondelete PROP’larını ekleyin, böylece kullanıcı düğmeyi tıkladığında sayım silinir:
const tezgahları = ({değer, çevrimiçi, ondeRease, ondelete}) => (
sayacı: {value}

admin

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir