React е библиотека за креирање на кориснички интерфејси, kомпонентите се делови код, кои што дефинираат како треба да изгледа и да се однесува една секција во корисничкиот интерфејс. Тие може да бидат функционални(functional) или класно-базирани(class-based).
Во продолжение, пет разлики помеѓу функционалните и класно-базираните компоненти:
- Синтакса
Функционалните компоненти се дефинирани како функции, додека пак класните се дефинирани како JavaScript ES6 класи.
- Состојба и lifecycle методи
Функционалните компоненти не можат да имаат состојба или пристап до lifecycle методи, додека пак класно-базираните можат да имаат состојба и пристап до lifecycle методи.
- Големина и читливост на код
Функционалните компоненти имаат тенденција да бидат пократки и поконкретни од класно-базираните компоненти. Исто така, тие полесно се читаат и разбираат, особено за девелоперите на кои што објектно ориентираниот концепт не им е силна страна.
- Перформанси
Функционалните компоненти генерално имаат подобри перформанси од класно базираните, бидејќи тие не креираат истанци. Исто така, тие се полесни за оптимизација, бидејќи не се потпираат на клучниот збор this.
- Повторна употреба
Функционалните компоненти се подобри за повторна употреба, затоа што можат да се употребат како компоненти од повисок ред, render props, и React hooks.
Во продолжение погледнете неколку примери:
Класно-базирана компонента
Пример код за класно-базирана компонента
import React, { Component } from 'react';
class ClassComponent extends Component {
render() {
return (
<div>
<h1>Hello, this is a class component</h1>
</div>
)
}
}
export default ClassComponentРезултатот на екран е како на сликата подолу:

Функционална компонента
Пример код за функционална компонента
function FunctionalComponent() {
return (
<div>
<h1>Hello, this is a functional component</h1>
</div>
)
}
export default FunctionalComponentРезултатот на екран е како на сликата подолу:

Рендерирање на компонента
За да се искористи компонентата во апликацијата, таа мора да се рендерира, пример код подолу:
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<FunctionalComponent/>)props
Компонентите може да се пренесат како props, тие се како аргументи за функции и може да се испратат во компонентата како атрибути. Пример код подолу:
function FunctionalComponent(props) {
return (
<div>
<h1>Hello, this is a {props.type} functional component</h1>
</div>
)
}
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<FunctionalComponent type = "functional"/>)Резултатот на екран е како на сликата подолу:

Компонента во компонента
Една компонента може да се искористи во друга компонента, погледнете го примерот подолу
function Component() {
return (
<h1>functional component</h1>
)
}
function FunctionalComponent() {
return (
<div>
<h1>Hello, this is a </h1>
<Component />
</div>
)
}
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<FunctionalComponent />)Резултатот на екран е како на сликата подолу:

Што понатаму?
Следете го IT.mk и наскоро ќе ги објавиме преостанатите туторијали за React.







