useRef to hook, który pozwala na stworzenie obiektu, którego referencja jest stała. Nawet wtedy, gdy komponent jest renderowany na nowo. Dodatkowo zmiana wartości obiektu zwróconego przez ten hooknie powoduje przerysowania komponentu.
Składnia:
const ref = useRef(some-value);
useRef przyjmuje jeden parametr. Jest to początkowa wartość, jaką będzie przechowywać stworzona referencja. Zwracany jest obiekt, który zawiera właściwość: current. Ta właściwość przechowuje wartość, którą podaliśmy przy wywołaniu useRef.
Do czego użyć useRef?
Użycie tego hook'a jest przydatne kiedy potrzebujesz przechować jakieś informacje, które nie będą wyświetlane na ekranie. Może to być na przykład ID timer'a itp.
Drugim przypadkiem, kiedy możemy wykorzystać useRef jest, gdy potrzebujemy robić jakieś zmiany w DOM. Przy użyciu tego hook'a tworzymy referencję do danego elementu i mamy do niego dostęp.
useMemo to hook, który pozwala na zapamiętanie stanu danych. Dzięki temu aplikacja nie musi przetwarzać danych na nowo, kiedy komponent zostanie ponownie renderowany.
Dobrym przypadkiem użycia useMemo jest, gdy operujesz na dużym zbiorze danych i chcesz uniknąć obliczania tych samych danych na nowo przy ponownym renderowaniu:
functionMyComponent({ data }) {
const total = useMemo(() => data.reduce((total, current) => total + current, [data]);
return (
<>
Total: <strong>{total}</strong></>
)
}
data to w tym przypadku tablica liczb. Nie wiem, jak może być duża, dla tego warto użyć tutaj useMemo.
import { SomeComponent } from ‘../../../SomeComponent’;
Trudno się to czyta, im więcej zagnieżdżeń tym coraz dłuższa ścieżka. Pomijając wrażenia estetyczne problem jest większy kiedy przenosisz plik z jednej ścieżki do drugiej. A w kodzie znajduje się wiele odwołań do poprzedniej lokalizacji.
Można temu zaradzić, używając ścieżki absolutnej.
Ścieżki absolutne
Ścieżka absolutna daje nam gwarancję, że z każdego miejsca w kodzie ścieżka do danego pliku będzie taka sama.
Zamieniając poprzedni przykład na ścieżkę absolutną, może to wyglądać tak:
import { SomeComponent } from ‘components/SomeComponent’;
JavaScript konfiguracja
Żeby używać ścieżki absolutnej w projekcie JavaScript, należy dodać do pliku jsconfig.json taką konfigurację: