Что такое декларативность и императивность?
— 2 минуты
Императивный подход написания кода фокусируется на том, КАК именно должна быть выполнена задача.
В императивном стиле вы указываете шаг за шагом, что должно происходить, ничего не скрывая, например:
javascript1// Императивный способ создания списка из элементов массива 2const items = [1, 2, 3, 4, 5]; 3const ul = document.createElement('ul'); 4 5for (let i = 0; i < items.length; i++) { 6 const li = document.createElement('li'); 7 li.textContent = items[i]; 8 ul.appendChild(li); 9} 10 11document.body.appendChild(ul); 12
В этом примере мы явно указываем, как именно нужно создать список: создаем элементы, задаем им текст и добавляем в список.
Декларативный же подход фокусируется на том, ЧТО нужно сделать. В декларативном стиле вы описываете результат, который хотите получить, а не процесс его достижения, например:
jsx1import React from 'react'; 2import ReactDOM from 'react-dom'; 3 4const items = [1, 2, 3, 4, 5]; 5 6const App = () => ( 7 <ul> 8 {items.map(item => ( 9 <li key={item}>{item}</li> 10 ))} 11 </ul> 12); 13 14ReactDOM.render(<App />, document.getElementById('root')); 15
В этом примере с использованием React мы описываем, что хотим увидеть: список элементов. Мы не указываем, как именно React должен создать и добавить эти элементы, мы просто описываем структуру, которую хотим получить
Императивный стиль дает вам полный контроль над процессом выполнения, что может быть полезно для сложных алгоритмов и точной настройки.
Декларативный стиль, как правило, делает код более читаемым и легким для понимания, так как вы описываете только конечный результат. Также декларативный код часто легче поддерживать и изменять, так как он фокусируется на описании желаемого состояния, а не на пошаговом выполнении.
Статья была полезной?
Читайте также:
— 2 минуты
Как реагировать на изменения объекта
В JavaScript обычные объекты не умеют уведомлять о своих изменениях, однако...
— 2 минуты
Что такое Server-Sent Events
SSE — это технология для однонаправленного соединения между сервером и клие...
— 4 минуты
Связываем React и localStorage через useSyncExternalStore
Как согласовать изменение состояния в реакте и поля в localStorage? До нед...