React, Typescript, Axios i Material-UI

Cztery technologie wymienione w tytule tworzą bardzo atrakcyjne środowisko do efektywnego tworzenia aplikacji webowych.

W tym rozdziale poznamy funkcjonowania ReactJS w takim właśnie zestawie,

React + Typescript - wprowadzenie

Aby zanicjować aplikację ReactJS + Typescript wystarczy stworzyć trzy pliki:

1) public/index.html

<!doctype html>
<html>
<head></head>
<body>
  <div id=root></div>
</body>
</html>

2) src/index.tsx

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

ReactDOM.render(
    <div>
        Hello World!
    </div>,
    document.getElementById('root')
);

3) plik tsconfig.json

{
  "compilerOptions": {
    "target": "es5",
    "lib": [
      "dom",
      "dom.iterable",
      "esnext"
    ],
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "jsx": "preserve"
  },
  "include": [
    "src"
  ]
}

Dwa pierwsze to po prostu aplikacja ReactJS. Zwraca uwagę zmiana rozszerzenia w nazwie pliku. W miejsce .js stosujemy .ts - aby wskazać, że plik zawiera skrypt w Typescript. Natomaist rozszerzenie .tsx zawiera komponenty ReactJS zapisane w Typescript.

Plik tsconfig.json opisuje konfigurację dla Typescript. Możemy przekopiować z powyższej konfiguracji. Jeśli używamy react-scripts, uzupełni on zawartość tego pliku (na starcie wystarczy wpisać {}). Plik ten możemy (wraz z obszernymi komentarzami) wygenerować po zainstalowaniu Tyescript poleceniem:

tsc --init

Typescript musi wiedzieć jak działać - ale na szczęście wystarczy mu parę informacji takich samych dla większości aplikacji. Nie będziemy więc tu szczegółowo go opisywać. Istnieje wiele miejsc, gdzie można przeczytać o zawartości tego pliku.

Na przykład:

https://solutionchaser.com/typescript-pierwsze-kroki-konfiguracja/

Uwaga na marginesie:

Dawniej zapisywało się potrzebne parametry kilku plikach - m.in. w pliku .env (ODE_PATH=src/). Za,miast tego wystarczy odpowiedni wpis w tsconfig.json

Uruchamiamy minimalną aplikację.

Uruchamiamy:

yarn add react react-dom @types/react-dom react-scripts typescript

Powstaje plik packege.json

Do budowania aplikacji używamy pakietu react-script. Do powstałego pliku packege.json dodajemy opis wywołania skryptów:

"scripts": {

    "start": "react-scripts start",

    "build": "react-scripts build"

},

Teraz możemy uruchomić: yarn start

Program zaproponuje nam uzupełnienie pliku package.json o dane przeglądarki - należy potwierdzić:

yarn run v1.15.2
warning package.json: No license field
$ react-scripts start
? We're unable to detect target browsers.
Would you like to add the defaults to your package.json? (Y/n)

Na zakończenie uruchomiona zostaje przeglądarka internetowa i wyświetlony w niej napis Hello World.

Budowanie strony

Przed zbudowaniem strony możena na początek pliku package.json wpisać ścieżkę do strony:

"homepage": "./",

Pozwoli to otwierać stronę wprost z przeglądarki - bez pośrednictwa serwera www (pliki .js oztsną odnalezione).

budujemy stronę:

yarn build

znajdzie się ona w katalogu build