React Concepts
importantevocê pode usar userEducer para gerenciar estruturas de estado complexas, você pode usarefft para reagir o gancho que permite sincronizar um componente com um sistema externo. Você pode usecallback / useememo para otimização de desempenho, useref
para acesso dom, e criar gancho personalizado.Outra maneira de tornar os componentes muito reutilizáveis é usando o padrão de propenso de renderização . Um suporte de renderização é um suporte em um componente, que valor é uma função que retorna um elemento jsx . O próprio componente não renderiza nada além do suporte de renderização. Em vez disso, o componente simplesmente chama o suporte de renderização, em vez de implementar sua própria lógica de renderização
.suspense
permite exibir um fallback até que seus filhos terminam de carregar.
Exemplo
:
}>
o limite de erro
é um componente específico do React que envolve uma árvore de componente e impede que qualquer erro dentro desse componente se espalhe e faça com que um aplicativo inteiro falhe.Para usá -lo, você deve simplesmente envolver a árvore de componentes que deseja proteger com um componente de limite de erro. A borda de erro detectará erros e mostrará a interface do usuário de fallback quando eles acontecerem dentro da árvore de componentes embrulhados.
Exemplo
:
classe ErrorBoundary estende react.component { construtor (adereços) { super (adereços); this.state = {haserror: false}; } estático getderivedStateFromerror (erro) { // Atualizar o estado para que a próxima renderização mostre a interface do usuário de fallback. return {haserror: true}; } ComponentDidCatch (erro, info) { // Exemplo "ComponentStack": // em componenteThathathrows (criado por aplicativo) // em ErrorBoundery (criado por aplicativo) // em div (criado por aplicativo) // no aplicativo LogerRortomyService (erro, info.componentStack); } render () { if (this.state.haserror) { // você pode renderizar qualquer interface de fallback personalizada retornar this.props.fallback; } devolver this.props.Children; } }}>
Normalmente, você passará informações de um componente pai para um componente filho via props . Mas a passagem de adereços pode se tornar detalhada e inconveniente se você precisar passar por muitos componentes no meio, ou se muitos componentes em seu aplicativo precisarem das mesmas informações. contexto permite que o componente pai disponibilize algumas informações para qualquer componente na árvore abaixo - não importa quão profundo - sem passar explicitamente através de props
.
O gerenciamento de estado é um conceito crucial no React, as bibliotecas JavaScript mais populares do mundo para construir interfaces dinâmicas de usuário.
Bundling é ótimo, mas à medida que seu aplicativo cresce, seu pacote também crescerá. Especialmente se você estiver incluindo bibliotecas de terceiros grandes . Você precisa ficar de olho no código que está incluindo no seu pacote para evitar acabar com um pacote amplo
, é bom ficar à frente do problema e começar a "dividir" o seu pacote. code-splitting é um recurso suportado por agrupamentos como webpack , rollup e Browserify (via fator-bundle) que podem criar vários pacotes que podem ser carregados dinamicamente em code-splitting Seu aplicativo pode ajudá-lo a "carregar preguiçoso" apenas as coisas que são necessárias atualmente pelo usuário, que podem melhorar drasticamente o desempenho do seu aplicativo. Embora você não tenha reduzido a quantidade geral de código em seu aplicativo, você evitou o código de carregamento que o usuário nunca precisa e reduziu a quantidade de código necessária durante o carga inicial .
Conclusão Neste artigo, escrevi sobre conceitos avançados no React . Esses conceitos avançados melhoram
desempenho e manutenção em seus aplicativos React
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3