[ad_1]

Hooks são uma adição brilhante ao React. Eles simplificam muita lógica que anteriormente tinha que ser dividida em diferentes ciclos de vida com class componentes.

Eles, no entanto, exigem uma diferente modelo mental, especialmente para iniciantes.

Eu também gravei um pequeno série de vídeos neste artigo que você pode achar útil.

Debounce e aceleração

Há uma tonelada de postagens de blog escritas sobre desaceleração e aceleração, por isso não vou aprender como escrever sua própria desaceleração e aceleração. Por questões de concisão, considere debounce e throttle de Lodash.

Se você precisar de uma atualização rápida, aceite uma função (retorno de chamada) e uma demora em milissegundos (digamos x) e, em seguida, ambos retornam outra função com algum comportamento especial:

  • debounce: retorna uma função que pode ser chamada qualquer número de vezes (possivelmente em sucessões rápidas), mas invocará apenas o retorno de chamada depois de esperar para x ms da última chamada.
  • throttle: retorna uma função que pode ser chamada qualquer número de vezes (possivelmente em rápida sucessão), mas invocará o retorno de chamada no máximo uma vez cada x em.

Usecase

Temos um editor de blog mínimo (aqui está o Repo GitHub) e gostaríamos de salvar a postagem do blog no banco de dados 1 segundo depois que o usuário parar de digitar.

Você também pode consultar esta caixa de códigos se você deseja ver a versão final do código.

Uma versão mínima do nosso editor fica assim:

import React, { useState } from 'react';import debounce from 'lodash.debounce';function App() {	const [value, setValue] = useState('');	const [dbValue, saveToDb] = useState(''); // would be an API call normally	const handleChange = event => {		setValue(event.target.value);	};	return (		

Blog