… React'in ekim'2020'deki en yeni sürümü
React 17, Yeni Özellik Yok sürümü olarak tanıtıldı. Bununla birlikte, React çekirdeğinde birçok yüksek etkili iyileştirme bulabilirsiniz. Bunların dışında JSX için yapılan değişiklikler oldukça belirgindir.
İdeal olarak, React 16'dan 17'ye yükselttiğinizde, tüm projeyi aynı anda yükseltmelisiniz.
Ancak, React 17'den itibaren iki yükseltme seçeneği olacak. Bundan sonra, tüm projeyi tek seferde veya parçalar halinde en son sürüme yükseltmeye karar verebilirsiniz.
Ayrıca, React 17'de New JSX Transform, Effect Cleanup Timing, Native Component Stacks gibi birçok değişiklik var ve bunlar hakkında daha fazlasını belgelerinde bulabilirsiniz .
TypeScript kullanan React 16 projesi.
React 17'nin yüzeysel bir incelemesi sizi kesinlikle etkilemeyecektir. Gerçek heyecan verici şeyler yeni özellikler değil, React'in derlenme biçimidir.
Bunları daha iyi anlamak için, React'in eski bir sürümünü kullanan bir bileşende derlenmiş JSX koduna bakalım.
React 17'den önce
React.createElementKapsamda React bağımlılığının bulunması gereken derlenmiş sürümün kullanıldığını fark edebilirsiniz . Bu nedenle, her bir bileşende ilk etapta React'i içe aktarmanız gerekir.
Şimdi React 17 ile nasıl çalıştığına bir göz atalım.
React 17 ile JSX için React içe aktarmaya ihtiyacınız yok
Umarım bu, derlenen sürümün React içe aktarımını gerektirmediğine dair bir ipucu verir. Aşağıdaki görüntüde görebileceğiniz gibi, React 17 derleyicisi
react/jsx-runtime, JSX dönüşümünü işleyen yeni bir bağımlılığı içe aktarır .
React 17 ile Yeni JSX Dönüşümü
Dolayısıyla geliştiriciler olarak, React 17'ye yükselttikten sonra, bileşen kodunuzdan React içe aktarımlarını yalnızca JSX için varsa kaldırabilirsiniz.
Ama tek değişiklik bu mu ve önemli mi?
Daha önce fark ettiğiniz gibi, etki dışarıdan bakıldığında önemsiz görünüyor.
Kod tabanınızda daha fazla React bileşeni olduğunda genel etkinin görünür olacağını anlamak önemlidir.
React.createElementEtkiyi daha iyi anlamak için, JSX için konulardaki bağımlılığı neden ortadan kaldırdığına bakalım.
React.createElement
React içe aktarmanın kaldırılmasıyla, derlenmiş paket çıktınızın boyutu biraz daha küçülecektir. Aşağıda gösterildiği gibi, derleyicinin onu React'te bir alt modül ile değiştirdiği bileşenlerin her birinden React içe aktarımını kaldırmamız gerektiğinden, umarım bu açık hale gelir.
import {jsx as _jsx} from 'react/jsx-runtime';
Eh, bu kullanımdan kaldırma bildirimlerinden başka bir şey değil. React 17 JSX değişiklikleriyle ilgili bilmeniz gereken birkaç bildirim vardı.
const Foo = (props) => { return { onClick() { //... } render() { return <div onClick={this.onClick.bind(this)} />; } } };
isReactComponentReact'e sınıflar ve işlev bileşenleri arasında ayrım yapmasını söylemek için a ile bir prototip ekleyin .
function Foo(props) { return { onClick() { //... } render() { return <div onClick={this.onClick.bind(this)} />; } } }; Foo.prototype = { isReactComponent: true};
defaultPropsİşlev bileşenlerini kullanımdan kaldırın .
Ancak, bu uyarılar React 17'ye geçmeniz için bir gösteri durdurucu değildir. Ayrıca, bir sonraki ana sürüme yükseltmek için zamanınız da olacaktır.
Bir web standardı olmasa ve Web Bileşenleri bir şekilde onun yerini almaya çalışsa da, JSX, HTML ve JavaScript'i birlikte yazma şeklimizi basitleştirmek için React ile birlikte gelen harika bir teknolojidir. Ama tam olarak nasıl çalışıyor? Demek istediğim, evet, JSX'i bir React bileşeninden döndürebiliriz, ancak bunun standart JavaScript olmadığını hepimiz biliyoruz, peki tam olarak nasıl çalışıyor? Arkasında ne tür bir sihirbazlık var? Ben şahsen teknolojinin "sadece işe yaramasını" seviyorum, ancak işim buna bağlıysa, elimden geldiğince anlamaya çalışıyorum.
Bu makale, React bileşenleri ve bir React uygulamasında bir bileşen oluşturmadan önce bir kullanıcının onlar hakkında bilmesi gereken her şeyi ele alacaktır. React bileşenleri, kullanıcı arabirimini React uygulamasının bağımsız çalışan bölümlerine ayırmanıza olanak tanır.
Nihayet! 2022 En İyi Yeni Müziklerime hoş geldiniz. Bunu her yıl arkadaşlarla bağlantı kurmak için paylaşıyorum.
Empati, bir başkasının durumu, zihni (düşünceleri) ve hissi (duyguları) hakkında farkındalık eylemi/sürecidir. Başkalarının bakış açısını anlama kapasitesidir.
COVID-19 salgınının Grand Rapids şehri ve sakinleri üzerinde derin bir etkisi oldu. Virüs 2020'nin başlarında ilk ortaya çıktığında, topluluktaki birçok kişi başlangıçta ciddiyetine ve yayılmasını kontrol etmek için katı önlemlere duyulan ihtiyaç konusunda şüpheciydi.
Teknoloji dünyasında, işletmeler sürekli olarak siber suçluların şeytani faaliyetlerinin tuzağına düşme riski altındadır. Endişe verici derecede sık hale gelen böyle bir taktik, kimlik bilgilerini doldurmaktır.