szczecinski.eu

szczecinski.eu

  • Kurs React
  • Zaawansowany React
  • Kurs Redux
  • Kurs ES6
  • Blog
  • Kontakt

›Wprowdzenie do React

Podstawowe pojęcia, konfiguracja środowiska

  • Podstawowe pojęcia
  • Środowisko NodeJS
  • Narzędzia
  • create-react-app

Wprowdzenie do React

  • ReactDOM
  • JSX
  • Komponenty
  • Kompozycja

Interakcja z komponentami

  • Przekazywanie danych w relacji rodzic : dziecko
  • propTypes i defaultProps
  • Listy komponentów
  • Listy komponentów - renderowanie bez rodzica
  • Formularze niekontrolowane, referencje
  • Zdarzenia
  • Stan komponentu
  • Cykl życia komponentu
  • Przekazywanie danych do rodzica i rodzeństwa

Receptury

  • CSS
  • CSS w JS
  • Wymiana danych - AJAX
  • Wersja produkcyjna i publikowanie aplikacji

Kompozycja

Jedną z mantr React jest "kompozycja ponad dziedziczenie". Oznacza to, że nasze komponenty nie powinny rozszerzać funkcjonalności już istniejących komponentów, a tworzyć nowe w oparciu o już istniejące. W praktyce sprowadza się to do wyćwiczenia u siebie umiejętności dostrzegania elementów UI, które będziemy mogli wykorzystać w wielu miejscach naszej aplikacji.

Nie musimy od razu wiedzieć w jaki sposób będą one wykorzystywane - tutaj przyjdą nam z pomocą bardziej zaawansowane tematy jak komponenty wyższego rzędu (ang. High order Components) czy wzorzec "render as callback" / "function as child".

Wydzielmy zatem z naszego komponentu Tweet obiekty, które na pewno przydadzą nam się gdzie indziej: komponent wskazujący czas oraz komponent wskazujący autora Tweetu.

import React from "react";
import ReactDOM from "react-dom";

const TweetTime = () => <time>11 Listopada</time>;
const TweetUser = () => (
  <span>
    <b>Bartosz Szczeciński</b> @btmpl
  </span>
);

class Tweet extends React.Component {
  render() {
    const date = new Date().toString();
    return (
      <div>
        <TweetUser /> -
        <TweetTime />
        <p>Witaj świecie!</p>
      </div>
    );
  }
}

ReactDOM.render(<Tweet />, document.getElementById("root"));

W ten sposób określamy także i ograniczamy API naszego komponentu - teraz za każdym razem, kiedy jako konsumenci biblioteki chcemy wyrenderować Tweet używamy jednego prostego komponentu, który wewnętrznie używa mniejszych komponentów, które jego twórca może wyeksportować z biblioteki i umożliwić nam na użycie w innych miejscach aplikacji.

← KomponentyPrzekazywanie danych w relacji rodzic : dziecko →
Bartosz Szczeciński © 2019 Materiał dostępny na zasadach licencji MIT.