Skip to content

heticeric/react_16x-courses

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Advanced course for React 16.x

Hooks

Introduction

La version 16.8 permet d'utiliser des composants fonctionnels statefull. Cette emploi passe par fonctions, les Hooks. Auparavant, seules les composants héritant de la classe React.Component permettaient de gérer des états.

Guide

Étape par étape, suivez la mise en place d'un projet react

Custom hooks

Vous pouvez créer votre propres hooks, simplement en faisant une fonction.

import React, { useState } from "react";

const useToggle = (initialValue) =>
{
  const [ toggleValue, setToggleValue ] = useState(initialValue);
  const toggler = () => setToggleValue( !toggleValue );

  return [ toggleValue, toggler ];
}

export default useToggle;

Ainsi, vous pourrez réutiliser votre code entre pusieurs composants. Imaginons par exemple un hook personnalisé pour s'authentifier à une API.

Optimisation

Certains hooks permettent d'éviter aux composants des rendus inutiles. La technique utilisée se nomme mémoïsation. Elle consiste à mémoriser certaines valeurs et les utiliser telle une mise en cache.

Hook hook hook

In-depth

Références

Optimisations

Inventaire des méthodes de gestion des états

Références

Colocation des états

Ken C. Dodds suggère de laisser les états applicatifs aussi proches que possible du composant qui les utilisent. Il nomme cette méthodologie co-location

Autres méthodes

Références

Context API

Introduction

La nouvelle version Context API du framework, mis à jour récemment, simplifie l'échange de props dans une hiérarchie de composants à plusieurs niveaux.

useContext hook

Obtenir les données d'un contexte Provider parent

import React, { useContext } from 'react'

const CurrentRoute = React.createContext({ path: '/welcome' })
const CurrentUser = React.createContext(undefined)
const IsStatic = React.createContext(false)

export default () =>
{
  let currentRoute = useContext(CurrentRoute)
  let currentUser = useContext(CurrentUser)
  let isStatic = useContext(IsStatic)

  return (
    !isStatic &&
    currentRoute.path === '/welcome' &&
    (currentUser
      ? `Welcome back, ${currentUser.name}!`
      : 'Welcome!'
    )
  )
}

Question performances

La tentation est forte de vouloir remplacer le framework Redux par un Context global, faisant œuvre de store. Quid des contraintes et performances ?

Multi contexts to the rescue

Motif de conception pour de larges applications scalables

Reactive state with RxJS

Avantages de la programmation reactive

Pourquoi devrions nous tous utiliser la programmation réactive ?

Observable

La réactivité des Observable peut également nous intéresser dans la gestion des états applicatif. Petite révision sur l'Observable RxJS

Observable in depth

Plongée dans le code des Observable.

Subject

La classe Subject étend Observable.

Tips & tricks

Quelques exemples intéressant d'usage des streams reactifs.

Gestion optimisée des états applicatifs

Est-il possible de s'approprier des streams RxJS pour gérer les state d'une application react ?

About

Advanced course for React 16.x

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors