Skip to content
Snippets Groups Projects
README.md 2.6 KiB
Newer Older
Nathalie Rousse's avatar
Nathalie Rousse committed
# React JS App Vite

Nathalie Rousse's avatar
Nathalie Rousse committed
React JS App created by Vite

Nathalie Rousse's avatar
Nathalie Rousse committed
### Online at http://nathalie.rousse.pages.mia.inra.fr/react-js-app-vite
Nathalie Rousse's avatar
Nathalie Rousse committed

Nathalie Rousse's avatar
Nathalie Rousse committed
# Creation
Nathalie Rousse's avatar
Nathalie Rousse committed

Nathalie Rousse's avatar
Nathalie Rousse committed
- See :
Nathalie Rousse's avatar
Nathalie Rousse committed
  "ReactJS pour debutants #1 Introduction - Tuto français"
Nathalie Rousse's avatar
Nathalie Rousse committed
  https://www.youtube.com/watch?v=-WT3641nb9k
Nathalie Rousse's avatar
Nathalie Rousse committed

Nathalie Rousse's avatar
Nathalie Rousse committed
- Required : **nodeJS**, **npm**
Nathalie Rousse's avatar
Nathalie Rousse committed
```
Nathalie Rousse's avatar
Nathalie Rousse committed
node -v
v18.20.5
npm -v
10.8.2
Nathalie Rousse's avatar
Nathalie Rousse committed
```

Nathalie Rousse's avatar
Nathalie Rousse committed
- Using VSCodium https://vscodium.com ,
  https://github.com/VSCodium/vscodium/releases

  *Note : Visual Studio Code for the Web https://vscode.dev provides a free,
Nathalie Rousse's avatar
Nathalie Rousse committed
  zero-install Microsoft Visual Studio Code experience running entirely in
  your browser.*
Nathalie Rousse's avatar
Nathalie Rousse committed

Nathalie Rousse's avatar
Nathalie Rousse committed
- Creation using 'Vite' (*instead of command ```create react app```*)
Nathalie Rousse's avatar
Nathalie Rousse committed

Nathalie Rousse's avatar
Nathalie Rousse committed
```
npm create vite@latest
Nathalie Rousse's avatar
Nathalie Rousse committed

Nathalie Rousse's avatar
Nathalie Rousse committed
> npx
> create-vite
Nathalie Rousse's avatar
Nathalie Rousse committed

Nathalie Rousse's avatar
Nathalie Rousse committed
✔ Project name: … jsapp
✔ Select a framework: › React
✔ Select a variant: › JavaScript
Nathalie Rousse's avatar
Nathalie Rousse committed

Nathalie Rousse's avatar
Nathalie Rousse committed
Scaffolding project in react-js-app-vite/jsapp...
Nathalie Rousse's avatar
Nathalie Rousse committed

Nathalie Rousse's avatar
Nathalie Rousse committed
Done. Now run:
Nathalie Rousse's avatar
Nathalie Rousse committed

Nathalie Rousse's avatar
Nathalie Rousse committed
  cd jsapp
  npm install
  npm run dev
```
Nathalie Rousse's avatar
Nathalie Rousse committed

Nathalie Rousse's avatar
Nathalie Rousse committed
- Dev Run :
Nathalie Rousse's avatar
Nathalie Rousse committed
```
cd jsapp
npm install
npm run dev
```
Nathalie Rousse's avatar
Nathalie Rousse committed

Nathalie Rousse's avatar
Nathalie Rousse committed
- More detailed install :
```
npm install react@^18.0.0 react-dom@^18.0.0

# React Router for multiple pages
npm install react-router-dom

# leaflet for 'World' App :
npm install react-leaflet@^4.0.0
npm install leaflet
npm install react-leaflet-cluster
```

Nathalie Rousse's avatar
Nathalie Rousse committed
- CI/CD :

  - See https://vite.dev/guide/static-deploy.html
Nathalie Rousse's avatar
Nathalie Rousse committed
  - See .gitlab-ci.yml
Nathalie Rousse's avatar
Nathalie Rousse committed

Nathalie Rousse's avatar
Nathalie Rousse committed
  - App online at
Nathalie Rousse's avatar
Nathalie Rousse committed
    **http://nathalie.rousse.pages.mia.inra.fr/react-js-app-vite**
Nathalie Rousse's avatar
Nathalie Rousse committed

Nathalie Rousse's avatar
Nathalie Rousse committed
- Multiple pages with React Router :
Nathalie Rousse's avatar
Nathalie Rousse committed

Nathalie Rousse's avatar
Nathalie Rousse committed
  - See https://www.digitalocean.com/community/questions/how-to-build-multple-pages-website-using-react-js-i-have-not-idea
Nathalie Rousse's avatar
Nathalie Rousse committed

Nathalie Rousse's avatar
Nathalie Rousse committed
  - **Required** : react-router-dom
Nathalie Rousse's avatar
Nathalie Rousse committed

# Content

Nathalie Rousse's avatar
Nathalie Rousse committed
## Some examples
Nathalie Rousse's avatar
Nathalie Rousse committed

Nathalie Rousse's avatar
Nathalie Rousse committed
- AppBasics.jsx
- AppOriginal.jsx
- TicTacToe.jsx
Nathalie Rousse's avatar
Nathalie Rousse committed
- World.jsx
  - See : Tutoriel sur l'utilisation de Leaflet avec React
    https://www.linkedin.com/pulse/tutoriel-sur-lutilisation-de-leaflet-avec-react-christian-humbert-qoyhe
  - Leaflet : bib pour creer des cartes interactives
Nathalie Rousse's avatar
Nathalie Rousse committed
  - **Required** : react-leaflet leaflet react-leaflet-cluster
Nathalie Rousse's avatar
Nathalie Rousse committed

Nathalie Rousse's avatar
Nathalie Rousse committed
## Siwaa
Nathalie Rousse's avatar
Nathalie Rousse committed

Nathalie Rousse's avatar
Nathalie Rousse committed
- ***SiwaaBrowsing_0.jsx*** :
Nathalie Rousse's avatar
Nathalie Rousse committed

Nathalie Rousse's avatar
Nathalie Rousse committed
  HTTP GET requests as "a href=..." tags.
Nathalie Rousse's avatar
Nathalie Rousse committed

Nathalie Rousse's avatar
Nathalie Rousse committed
  Authentication by firstly connecting to Siwaa
  (https://siwaa.toulouse.inrae.fr) from the Web Browser.
Nathalie Rousse's avatar
Nathalie Rousse committed

Nathalie Rousse's avatar
Nathalie Rousse committed
- **SiwaaBrowsing.jsx** :
Nathalie Rousse's avatar
Nathalie Rousse committed

Nathalie Rousse's avatar
Nathalie Rousse committed
  HTTP requests : React + Fetch
Nathalie Rousse's avatar
Nathalie Rousse committed

Nathalie Rousse's avatar
Nathalie Rousse committed
  Required : Domain must have been declared into Siwaa Configuration (See
Nathalie Rousse's avatar
Nathalie Rousse committed
  'allowed_origin_hostnames' into config/galaxy.yml).
Nathalie Rousse's avatar
Nathalie Rousse committed

Nathalie Rousse's avatar
Nathalie Rousse committed
  See
  - https://builtin.com/software-engineering-perspectives/react-api
  - https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch
  - https://medium.com/@olivier.trinh/how-to-use-fetch-in-react-js-b142f372dfb5
  - https://jasonwatmore.com/post/2020/02/01/react-fetch-http-post-request-examples
Nathalie Rousse's avatar
Nathalie Rousse committed