Функциональные компоненты ReactJS
Функциональные компоненты - одни из наиболее распространенных компонентов, которые встречаются при работе в React. Это просто функции JavaScript. Мы можем создать функциональный компонент для React, написав функцию JavaScript. Эти функции могут получать или не получать данные в виде параметров. В функциональных компонентах возвращаемое значение - это JSXcode для рендеринга в дерево DOM.
Пример: программа для демонстрации создания функциональных компонентов.
Путь к файлу - src / index.js: откройте каталог проекта React и отредактируйте файл index.js из папки src:
Javascript
import React from
'react'
;
import ReactDOM from
'react-dom'
;
import Demo from
'./App'
;
ReactDOM.render(
<React.StrictMode>
<Demo />
</React.StrictMode>,
document.getElementById(
'root'
)
);
Путь к файлу - src / App.js: откройте каталог проекта React и отредактируйте файл App.js из папки src:
javascript
import React from
'react'
;
import ReactDOM from
'react-dom'
;
const Demo=()=>
{
return
<h1>Welcome to GeeksforGeeks</h1>;
}
export
Demo;
default
Выход:
Пример: мы также можем использовать функциональный компонент в другом компоненте. Приведенная ниже программа демонстрирует использование функциональных компонентов в других компонентах. Filepath- src App.js: откройте каталог проекта React и отредактируйте файл App.js из папки src: Выход: Функциональным компонентам не хватает значительного количества функций по сравнению с компонентами на основе классов . Этот пробел восполняется с помощью специальной концепции ReactJS, называемой «крючками» . Хуки - это специальные функции, которые позволяют использовать функции ReactJS в функциональных компонентах . Функциональные компоненты не имеют доступа к выделенным переменным состояния, таким как компоненты на основе классов . Единственное «состояние», к которому фактически имеет доступ функциональный компонент, - это реквизиты, переданные ему от его родительского компонента. ReactJS имеет доступ к специальному хуку useState (), который можно использовать для создания иллюзии работы с состоянием в функциональных компонентах. UseState () используется для инициализации только одной переменной состояния для инициализации нескольких переменных состояния, требуется несколько объявлений useState () . Первое возвращаемое значение - это начальное значение переменной состояния, а второе возвращаемое значение - это ссылка на функцию, которая его обновляет. Когда необходимо обновить переменную состояния, это можно сделать, вызвав функцию обновления и обновив переменную состояния непосредственно внутри нее. Пример: программа для демонстрации использования ловушки useState () . Путь к файлу src / index.js: откройте каталог проекта React и отредактируйте файл Index.js из папки src: Путь к файлу - src / App.js: откройте каталог проекта React и отредактируйте файл App.js из папки src: Выход: Функциональные компоненты не имеют доступа к функциям жизненного цикла, в отличие от компонентов на основе классов, поскольку функции жизненного цикла необходимо определять в границах класса. Если функции жизненного цикла необходимо использовать с функциональными компонентами, необходимо использовать специальный перехватчик React, называемый useEffect (). Стоит отметить, что useEffect () не является точной копией функций жизненного цикла - он работает и ведет себя несколько иначе. Пример: программа для демонстрации использования ловушки useEffect () . Путь к файлу - src / index.js: откройте каталог проекта React и отредактируйте файл index.js из папки src: Путь к файлу - src / App.js: откройте каталог проекта React и отредактируйте файл App.js из папки src: Выход: Данные передаются от родительского компонента к дочерним компонентам в виде свойств. ReactJS, как правило, не позволяет компоненту изменять свои собственные свойства. Единственный способ изменить свойства - это изменить свойства, передаваемые дочернему компоненту. Обычно это делается путем передачи ссылки на функцию в родительском компоненте дочернему компоненту. Свойства имеют большее значение в функциональных компонентах по той простой причине, что функциональные компоненты не имеют доступа к состоянию, в отличие от компонентов на основе классов. Пример: программа для демонстрации использования реквизита. Filepatje- src / index.js: откройте каталог проекта React и отредактируйте файл Index.js из папки src: Путь к файлу - src / App.js: откройте каталог проекта React и отредактируйте файл App.js из папки src: Выход: Javascript
import React from
'react'
;
import ReactDOM from
'react-dom'
;
import Welcome from
'./App'
;
ReactDOM.render(
<React.StrictMode>
<Welcome />
</React.StrictMode>,
document.getElementById(
'root'
)
);
javascript
import React from
'react'
;
const Welcome=()=>
{
return
(
<h1>Welcome to GeeksforGeeks</h1>
);
}
const functionExample=()=>
{
return
(
<Welcome/>
);
}
export
default
Welcome;
Javascript
import React from
'react'
;
import ReactDOM from
'react-dom'
;
import Example from
'./App'
;
ReactDOM.render(
<React.StrictMode>
<Example />
</React.StrictMode>,
document.getElementById(
'root'
)
);
javascript
import React, { useState } from
'react'
;
const Example=()=> {
const [change, setChange] = useState(
true
);
return
(
<div>
<button onClick = {() => setChange(!change)}>
Click Here!
</button>
{change?<h1>Welcome to GeeksforGeeks</h1>:
<h1>A Computer Science Portal
for
Geeks</h1>}
</div>
);
}
export
default
Example;
Javascript
import React from
'react'
;
import ReactDOM from
'react-dom'
;
import Example from
'./App'
;
ReactDOM.render(
<React.StrictMode>
<Example />
</React.StrictMode>,
document.getElementById(
'root'
)
);
javascript
import React, { useEffect } from
'react'
;
const Example=()=> {
useEffect(() => {
console.log(
"Mounting..."
);
});
return
(
<h1>
Geeks....!
</h1>
);
}
export
default
Example;
Javascript
import React from
'react'
;
import ReactDOM from
'react-dom'
;
import Example from
'./App'
;
ReactDOM.render(
<React.StrictMode>
<Example />
</React.StrictMode>,
document.getElementById(
'root'
)
);
javascript
import React, { useState } from
'react'
;
import props from
'prop-types'
;
const Example=()=> {
return
(
<h1>{props.data}</h1>
);
}
function
propsExample()
{
const [change, setChange] = useState(
true
);
return
(
<div>
<button onClick = {() => setChange(!change)}>
Click Here!
</button>
{change?
<Example data=
"Welcome to GeeksforGeeks"
/>:
<Example data=
"A Computer Sciecne Portal for Geeks"
/>}
</div>
);
}
export
default
Example;