Урок за React за начинаещи - Композиция срещу наследяване

Блог

React има мощен модел на композиция и препоръчваме да използвате композиция вместо наследяване, за да използвате повторно кода между компонентите.

В този раздел ще разгледаме няколко проблема, при които разработчиците, които са нови в React, често посягат към наследяване и ще покажем как можем да ги разрешим със състава.

Задържане

Някои компоненти не познават децата си предварително. Това е особено често за компоненти като | _+_ | или | _+_ | които представляват общи кутии.

Препоръчваме такива компоненти да използват специалните | _+_ | prop за предаване на детски елементи директно в техния изход:

Sidebar

Това позволява на други компоненти да им предават произволни деца чрез влагане на JSX:

Dialog

Опитайте с CodePen

cash app име на банка за директен депозит

И така, какво ще кажете за наследството?

Във Facebook използваме React в хиляди компоненти и не сме открили случаи на употреба, при които бихме препоръчали създаването на йерархии за наследяване на компоненти.

Реквизитът и композицията ви дават цялата гъвкавост, от която се нуждаете, за да персонализирате външния вид и поведението на компонент по изричен и безопасен начин. Не забравяйте, че компонентите могат да приемат произволни реквизити, включително примитивни стойности, елементи на React или функции.

Ако искате да използвате повторно функционалност без потребителски интерфейс между компоненти, предлагаме да я извлечете в отделен JavaScript модул. Компонентите могат да го импортират и да използват тази функция, обект или клас, без да го разширяват.

#react #javascript #уеб разработка #програмиране #разработчик

responsejs.org

Урок за React за начинаещи - Композиция срещу наследяване

React има мощен модел на композиция и препоръчваме да използвате композиция вместо наследяване, за да използвате повторно кода между компонентите. Ще разгледаме няколко проблема, при които разработчиците, които са нови в React, често посягат към наследство и ще покажем как можем да ги решим със състава.