Advertisement
GeorgiLukanov87

React helper

Dec 8th, 2023 (edited)
546
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. useState и useEffect са хукуве (hooks) в React.js, които се използват за управление на състоянието и ефекти във функционални компоненти.
  2.  
  3. useState: Този хук се използва за добавяне на състояние във функционален компонент. Той връща два елемента: текущата стойност на състоянието и функция, която може да се използва за промяна на това състояние. Например:
  4.  
  5. import React, { useState } from 'react';
  6.  
  7. function Example() {
  8.   // Дефиниране на състояние
  9.   const [count, setCount] = useState(0);
  10.  
  11.   return (
  12.     <div>
  13.       <p>Брояч: {count}</p>
  14.       <button onClick={() => setCount(count + 1)}>Увеличи брояча</button>
  15.     </div>
  16.   );
  17. }
  18.  
  19.  
  20. =======================================================================================================================
  21.    
  22.    
  23. useEffect: Този хук се използва за извършване на действия, които са свързани с ефекти (като заявки към сървър, промяна на DOM и други), след като се актуализира компонента. Той позволява добавянето на функции, които ще се изпълнят след всяко обновяване на компонента или когато определени стойности (dependency) се променят. Например:
  24.  
  25. import React, { useState, useEffect } from 'react';
  26.  
  27. function Example() {
  28.   const [data, setData] = useState(null);
  29.  
  30.   useEffect(() => {
  31.     // Имитация на заявка към API
  32.     fetch('https://api.example.com/data')
  33.       .then(response => response.json())
  34.       .then(data => setData(data))
  35.       .catch(error => console.error(error));
  36.   }, []); // [] означава, че този ефект се изпълнява само веднъж след монтажа на компонента
  37.  
  38.   return (
  39.     <div>
  40.       {data ? <p>Данни: {data}</p> : <p>Зареждане...</p>}
  41.     </div>
  42.   );
  43. }
  44.  
  45. useState се използва за управление на локално състояние във функционални компоненти, докато useEffect се използва за управление на странни ефекти (side effects) или за извършване на действия след промяна на компонента.
  46.  
  47.  
  48. =======================================================================================================================
  49.  
  50.  
  51. Основни концепции:
  52. Компоненти: React приложението е сглобено от компоненти - самостоятелни, многократно използваеми блокове на UI. Компонентите могат да бъдат функционални (function компоненти) или класови (class компоненти).
  53.  
  54. JSX (JavaScript XML): Синтактично разширение на JavaScript, което позволява декларативно изразяване на компонентите подобно на HTML в JavaScript файлове.
  55.  
  56. Virtual DOM: React използва виртуално DOM дърво за ефективно рендиране на UI, като актуализира само промените между текущото и предходното състояние на DOM.
  57.  
  58. Състояние (State): Използвайки useState хук (или в класовите компоненти с this.state), може да съхранявате и управлявате състоянието на компонента.
  59.  
  60. Пропс (Props): Пропсите са данни, които се предават от родителски компонент към децата му. Това позволява на компонентите да бъдат конфигурирани отвън.
  61.  
  62. Важни инструменти и концепции:
  63. Хукуве (Hooks): useState, useEffect и други хукуве позволяват използването на състояние и ефекти във функционални компоненти.
  64.  
  65. Животен цикъл на компонентите: В класовите компоненти, методите като componentDidMount, componentDidUpdate и componentWillUnmount контролират животния цикъл на компонентите. Във функционалните компоненти, useEffect играе ролята на хук за животен цикъл.
  66.  
  67. Рутиране (Routing): За навигация в приложението може да се използва библиотека като React Router, която позволява дефиниране на маршрути и превключване между тях без презареждане на страницата.
  68.  
  69. Управление на Състоянието: За по-сложни приложения може да използвате библиотеки като Redux или Context API на React за управление на състоянието в целия приложенски изпълнител.
  70.  
  71. Тестване: React предоставя инструменти като Jest и Enzyme за тестване на компонентите и функционалността им.
  72.  
  73. Server-side Rendering (SSR) и Static Site Generation (SSG): React поддържа възможности за рендиране на страници на сървъра или генериране на статични сайтове, което може да подобри SEO и първоначалното зареждане на уеб приложенията.
  74.  
  75. Hooks оптимизации: При оптимизация на React приложения, важно е да се използват оптимизирани хукуве като useMemo, useCallback и други, за да се избегне ненужно пререндиране на компоненти.
  76.  
  77. Това са само някои от основните концепции и инструменти в React.js. Все пак, реакт е разнообразна библиотека и продължава да развива функционалности, така че е важно да следвате актуалната документация и добрите практики за изграждане на вашето приложение.
  78.  
  79.  
  80. =======================================================================================================================
  81.  
  82.    
  83. Мутиращи методи и функции:
  84. Array.prototype.push(): Добавя елементи в края на масива, променяйки го.
  85. Array.prototype.pop(): Премахва последния елемент от масива, променяйки го.
  86. Array.prototype.splice(): Променя масива, като добавя/премахва елементи от него.
  87. Array.prototype.shift() и Array.prototype.unshift(): Добавят или премахват елементи от началото на масива, променяйки го.
  88. Object.assign(): Копира стойности от един обект към друг, като променя първия обект.
  89.  
  90. Немутиращи методи и функции:
  91. Array.prototype.concat(): Създава нов масив като комбинира входните масиви, без да променя първоначалния.
  92. Array.prototype.slice(): Връща нов масив, който е копие на част от съществуващия масив.
  93. Array.prototype.map(): Създава нов масив, като прилага функция върху всеки елемент на оригиналния масив.
  94. Array.prototype.filter(): Създава нов масив, като филтрира елементите на базата на предоставен критерий.
  95. Array.prototype.slice(): Създава копие на част или целия масив.
  96. Object.assign() с празен обект {} или операторът spread {...}: Създава нов обект, като обединява стойностите от други обекти, без да променя първоначалния обект.
  97.  
  98.  
  99. =======================================================================================================================
  100.    
  101.    
  102. HOC означава "Higher-Order Component" в React. Това е шаблон за проектиране, който се използва за повторно използване на логика в React компоненти. Higher-Order Component е функция, която приема компонент и връща нов компонент.
  103.  
  104. Основни характеристики на HOC:
  105. Повторно използване на логика: HOC позволява извличането на обща логика или функционалност от компоненти и я инкапсулира в отделна функция. Това позволява многократно използване на тази логика в различни компоненти.
  106.  
  107. Обвиване на компоненти: HOC връща нов компонент, който може да обработва пропсовете или да добавя допълнителна функционалност към първоначалния компонент.
  108.  
  109. import React from 'react';
  110.  
  111. // Примерен HOC - добавящ "логин" функционалност към компонент
  112. const withAuth = (WrappedComponent) => {
  113.   return class extends React.Component {
  114.     constructor(props) {
  115.       super(props);
  116.       this.state = {
  117.         isLoggedIn: false,
  118.       };
  119.     }
  120.  
  121.     // Допълнителна логика за "логин"
  122.     login = () => {
  123.       this.setState({ isLoggedIn: true });
  124.     };
  125.  
  126.     render() {
  127.       // Проверка дали е логнат и предаване на пропсовете към оригиналния компонент
  128.       return this.state.isLoggedIn ? (
  129.         <WrappedComponent {...this.props} />
  130.       ) : (
  131.         <button onClick={this.login}>Login</button>
  132.       );
  133.     }
  134.   };
  135. };
  136.  
  137. // Компонент, който се използва и обвива с HOC
  138. const MyComponent = (props) => {
  139.   return <div>Логнат потребител: {props.username}</div>;
  140. };
  141.  
  142. // Обвиване на компонента с HOC
  143. const MyComponentWithAuth = withAuth(MyComponent);
  144.  
  145. // Използване на компонента, обвит с HOC
  146. const App = () => {
  147.   return <MyComponentWithAuth username="John" />;
  148. };
  149.  
  150. export default App;
  151.  
  152.  
  153. Този пример илюстрира HOC, който добавя функционалност за "логин" към компонента MyComponent. HOC withAuth създава нов компонент (MyComponentWithAuth), който добавя логика за проверка на логина преди рендиране на оригиналния компонент.
  154.  
  155.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement