Resumo
Neste artigo, exploraremos como a Netflix melhorou o desempenho do front-end, mudando para a baunilha JS. A Netflix decidiu usar o React como um motor de modelos do lado do servidor e JS de baunilha para a interação e a manipulação de DOM no navegador. Isso lhes permitiu reduzir o tamanho do pacote JavaScript e melhorar o desempenho geral.
1. Como a Netflix melhorou seu desempenho no front-end?
A Netflix melhorou seu desempenho no front-end, mudando para a baunilha JS para a interação e a manipulação de Dom no navegador. Eles ainda usam o React como um mecanismo de modelos do lado do servidor.
2. Por que a Netflix decidiu mudar para a baunilha JS?
A Netflix mudou para a baunilha JS para reduzir o tamanho do pacote JavaScript e melhorar o desempenho geral. Esta decisão lhes permitiu eliminar a sobrecarga desnecessária de usar o React no navegador.
3. Quanto JavaScript a página da Netflix continha inicialmente?
A página da Netflix continha inicialmente 300kb de JavaScript, que incluía o React e outro código do lado do cliente, bem como dados de contexto necessários para hidratar o estado do React.
4. Por que a redução do tamanho do JavaScript é importante para o desempenho do front-end?
Reduzir o tamanho do JavaScript é importante para o desempenho do front-end, pois pode diminuir o tempo necessário para o navegador baixar e analisar o código. Pacotes JavaScript menores levam a tempos de carga mais rápidos e melhores experiências de usuário.
5. Qual é o benefício de usar o React como um motor de modelos do lado do servidor?
O uso do React como um mecanismo de modelos do lado do servidor permite a renderização dinâmica do HTML no servidor, o que pode melhorar o desempenho e o SEO. Ele também permite a reutilização de código entre o servidor e o cliente.
6. Como a mudança da Netflix para a baunilha JS afetou seu desempenho no front-end?
A mudança da Netflix para Vanilla JS melhorou significativamente seu desempenho no front-end. Ao remover a sobrecarga do React no navegador, eles foram capazes de reduzir o tamanho do pacote JavaScript e melhorar os tempos de carregamento.
7. Que abordagem a Netflix adotou para melhorar seu desempenho de front-end?
A Netflix usou o React como um motor de modelos do lado do servidor e JS de baunilha para interação e manipulação de DOM no navegador. Essa abordagem lhes permitiu equilibrar o desempenho e a manutenção.
8. Como reduzir o tamanho dos pacotes de javascript beneficiar os usuários?
Reduzir o tamanho dos feixes JavaScript pode beneficiar os usuários melhorando os tempos de carregamento da página, reduzindo o uso de dados e fornecendo uma experiência de navegação mais suave.
9. Qual é o significado da decisão da Netflix de mudar para a baunilha JS?
A decisão da Netflix de mudar para a baunilha JS demonstra a importância de otimizar o desempenho do front-end, mesmo para grandes empresas. Ele dá um exemplo para outros desenvolvedores e organizações que desejam melhorar seus próprios aplicativos da web.
10. O que os desenvolvedores podem aprender com as melhorias de desempenho do front-end da Netflix?
Os desenvolvedores podem aprender a importância de avaliar e otimizar seu código JavaScript para melhor desempenho do front-end. Eles também podem considerar o uso de renderização do lado do servidor com estruturas como React para aprimorar o desempenho e a experiência do usuário.
11. Como o uso reage como um motor de modelagem do lado do servidor benefícios de SEO?
O uso do React como um mecanismo de modelos do lado do servidor permite a renderização dinâmica do HTML no servidor, o que pode melhorar o SEO, fornecendo aos mecanismos de pesquisa conteúdo totalmente renderizado, em vez de depender da execução de JavaScript.
12. Que outras tecnologias a Netflix usou em sua pilha front-end?
O artigo não menciona tecnologias específicas, mas destaca a mudança para a baunilha JS para a interação front-end e a manipulação de DOM. É possível que a Netflix tenha usado outras ferramentas e bibliotecas em sua pilha front-end.
13. Como os desenvolvedores podem medir o desempenho do front-end?
Os desenvolvedores podem medir o desempenho do front-end usando ferramentas como Lighthouse, WebPageTest e Chrome Devtools. Essas ferramentas fornecem informações sobre métricas, como tempos de carregamento da página, tamanhos de ativos e atividade de rede.
14. Quais são as vantagens do uso de JS de baunilha para o desenvolvimento do front-end?
O uso de JS de baunilha para desenvolvimento front-end pode levar a tempos de carregamento mais rápido, tamanhos reduzidos de pacote, desempenho aprimorado e maior controle sobre a base de código. Ele também elimina a necessidade de dependências adicionais e despesas gerais introduzidas por estruturas como React.
15. Como os desenvolvedores podem otimizar seu código JavaScript para melhor desempenho?
Os desenvolvedores podem otimizar seu código JavaScript, minificando-o e comprimindo-o, reduzindo dependências desnecessárias, código de carregamento preguiçoso e usando técnicas como divisão de código e cache. Eles também podem priorizar o caminho de renderização crítica e minimizar os recursos de bloqueio de renderização.
Como a Netflix melhorou drasticamente o desempenho do front -end, mudando para a baunilha JS
Clone simples da Netflix usando a API React e TMDB para exibir filmes/programas de TV
Netflix
Clone Netflix de pilha completa com React, NextJs, Tailwindcss, Prisma e MongoDB
Clone Netflix de pilha completa com React, NextJs, Tailwindcss, Prisma e MongoDB
03 de maio de 2023
Clone da página de destino da Netflix com reação.JS
Clone da página de destino da Netflix com reação.JS
27 de abril de 2023
O Projeto Clone Netflix Fullstack com NextJs
O Projeto Clone Netflix Fullstack com NextJs
06 de abril de 2023
Um clone da Netflix FullStack com NextJs e Tailwind CSS
Um clone da Netflix FullStack com NextJs e Tailwind CSS
18 de março de 2023
Clone da Netflix feito no React e usando o Vite
Clone da Netflix feito no React e usando o Vite
01 de novembro de 2022
Um clone da Netflix usando reactjs, APIs TMDB, Firebase
Um clone da Netflix usando reactjs, APIs TMDB, Firebase
02 de outubro de 2022
Clone da interface do usuário da Netflix feita com reactjs e puro CSS
Clone da interface do usuário da Netflix feita com reactjs e puro CSS
07 de setembro de 2022
Site da Netflix Clone usando o React
Site da Netflix Clone usando o React
29 de agosto de 2022
Clone da Netflix usando o React18, TypeScript, Material UI e API TMDB
Clone da Netflix usando o React18, TypeScript, Material UI e API TMDB
22 de agosto de 2022
Um clone de front -end simplificado da Netflix criado com React e CSS
Um clone de front -end simplificado da Netflix criado com React e CSS
01 de agosto de 2022
Clone da Netflix usando o React JS
Clone da Netflix usando o React JS
12 de julho de 2022
Clone da Netflix com React JS e Firebase
Clone da Netflix com React JS e Firebase
06 de julho de 2022
Um video-jogador avançado com estilo Netflix com base no plug-in React-Player
Crie um player de vídeo da Netflix com react-player, datilografript e componentes com estilo.
30 de junho de 2022
Clone da Netflix construído com o próximo.JS e Tailwind CSS
Clone da Netflix construído com o próximo.JS e Tailwind CSS
10 de junho de 2022
Um clone da Netflix que construiu com reactjs
Um clone da Netflix que construiu com reactjs
03 de maio de 2022
Clone da Netflix feito com React, HTML, CSS
Clone da Netflix feito com React, HTML, CSS
17 de março de 2022
Um clone da Netflix feito usando componentes React, Firebase, Firestore e componentes
Um clone da Netflix feito usando componentes React, Firebase, Firestore e componentes
26 de fevereiro de 2022
Um clone simples da Netflix usando reactjs
Um clone simples da Netflix usando reactjs
17 de fevereiro de 2022
Um clone da Netflix construído usando o React
Um clone da Netflix construído usando o React
03 de fevereiro de 2022
Clone da interface do usuário da Netflix com ReactJs para fins de estudo
Clone da interface do usuário da Netflix com ReactJs para fins de estudo
27 de janeiro de 2022
Clone da Netflix criado usando o React.JS
Clone da Netflix criado usando o React.JS
21 de janeiro de 2022
Simplesmente clone da Netflix usando reactjs. Ele busca os dados da API TMDB
Simplesmente clone da Netflix usando reactjs. Ele busca os dados da API TMDB
26 de dezembro de 2021
Um clone simples da página inicial do ReactJS Netflix usando ASTRA DB e GraphQL
Um clone simples da página inicial do ReactJS Netflix usando ASTRA DB e GraphQL
21 de dezembro de 2021
Uma aplicação de clone da Netflix feita com react+datilografript
Uma aplicação de clone da Netflix feita com react+datilografript
15 de dezembro de 2021
Clone de aplicativo Netflix de pilha completa usando o React Native e AWS Amplify
Clone de aplicativo Netflix de pilha completa usando o React Native e AWS Amplify
28 de novembro de 2021
Um projeto de amostra da Netflix construído com reação
Um projeto de amostra da Netflix construído com reação
27 de novembro de 2021
Clone simples da Netflix usando a API React e TMDB para exibir filmes/programas de TV
Clone simples da Netflix usando a API React e TMDB para exibir filmes/programas de TV
17 de novembro de 2021
Clone da página inicial da Netflix usando o React JS
Clone da página inicial da Netflix usando o React JS
15 de novembro de 2021
Clone simples da Netflix usando a API React e TMDB para exibir filmes/programas de TV
Clone simples da Netflix usando a API React e TMDB para exibir filmes/programas de TV. Usa a interface do usuário do material para o front -end.
15 de novembro de 2021
A página principal do clone da Netflix construído usando o React
A página principal do clone da Netflix construído usando o React
08 de novembro de 2021
Clone da Netflix construído com React JS e autenticado com Firebase
Clone da Netflix construído com React JS e autenticado com Firebase
Como a Netflix melhorou drasticamente o desempenho do front -end, mudando para a baunilha JS
Netflix não’T CALMA MENHO REACH. Eles ainda o usam no servidor para criar seu HTML inicial.
Mas eles se livraram dele no navegador, se fosse um desempenho incapacitante do front -end.
eu penso isso’é uma ótima abordagem. Reaja como um mecanismo de modelos do lado do servidor. Vanilla JS para interação e manipulação de Dom no navegador.
Esta página continha inicialmente 300kb de JavaScript, alguns dos quais reagiram e outros código do lado do cliente (como bibliotecas de serviços públicos como o Lodash), e alguns dos quais eram dados de contexto necessários para hidratar o React’Estado.
300kb de JS! caramba!
Independentemente, isso’É ótimo ver uma grande empresa como a Netflix fazendo o salto para a baunilha JS. Para cavar o âmago da questão de como eles fizeram isso, leia Addy’S Artigo.
�� Venda rápida! Somente nesta semana, obtenha 50% de desconto em todos os cursos de JavaScript e ebook. Saiba mais em baunillajsguides.com.
Odeio a complexidade do desenvolvimento da web moderno de front -end? Eu envio um e -mail curto todos os dias da semana sobre como construir uma web mais simples e mais resiliente. Junte -se a mais de 14k outros.
Feito com ❤️ em Massachusetts. Salvo indicação em contrário, todo o código é gratuito para usar sob a licença do MIT. Eu também compartilho muito irregularmente pensamentos não codificantes.
Criação de uma interface de usuário de TV de alto desempenho usando o React
A interface da TV da Netflix está em constante evolução à medida que nos esforçamos para descobrir a melhor experiência para nossos membros. Por exemplo, após os testes A/B, pesquisa de rastreamento ocular e feedback do cliente, recentemente lançamos pré-visualizações de vídeo para ajudar os membros a tomar melhores decisões sobre o que assistir. Nós’Escreveu antes sobre como nosso aplicativo de TV consiste em um SDK instalado nativamente no dispositivo, um aplicativo JavaScript que pode ser atualizado a qualquer momento e uma camada de renderização conhecida como Gibbon. Neste post nós’destacará algumas das estratégias que’Empregado ao longo do caminho para otimizar o desempenho do aplicativo JavaScript.
React-Gibbon
Em 2015, embarcamos em uma reescrita por atacado e na modernização de nossa arquitetura de interface de usuário de TV. Decidimos usar o React porque seu fluxo de dados unidirecional e abordagem declarativa para o desenvolvimento da interface do usuário facilitam o raciocínio sobre o nosso aplicativo. Obviamente, nós’D Preciso do nosso próprio sabor de reação, pois naquele momento ele só segmentou o DOM. Conseguimos criar um protótipo que visava Gibbon rapidamente. Esse protótipo eventualmente evoluiu para o React-Gibbon e começamos a trabalhar para construir nossa nova interface do usuário baseada em React.
React-Gibbon’S API seria muito familiar para quem já trabalhou com o React-Dom. A principal diferença é que, em vez de divs, vãos, entradas etc., temos um único “ferramenta” Desenho primitivo que suporta o estilo embutido.
Reagir.createClass (render () retornar> />;
>
>);
O desempenho é um desafio importante
Nosso aplicativo é executado em centenas de dispositivos diferentes, desde os mais recentes consoles de jogo como o PS4 Pro até os dispositivos eletrônicos de consumo orçamentários com memória limitada e poder de processamento. As máquinas de baixo custo que direcionamos geralmente podem ter CPUs de núcleo único de sub-GHz, baixa memória e aceleração gráfica limitada. Para tornar as coisas ainda mais desafiadoras, nosso ambiente JavaScript é uma versão não-jit mais antiga do JavaScriptCore. Essas restrições tornam as experiências de 60fps super responsivas, especialmente complicadas e impulsionam muitas das diferenças entre o React-Gibbon e o React-Dom.
Medir, medir, medir
Ao abordar a otimização de desempenho’É importante identificar primeiro as métricas que você usará para medir o sucesso de seus esforços. Usamos as seguintes métricas para avaliar o desempenho geral do aplicativo:
- Responsabilidade da entrada de chave – O tempo necessário para render
- Hora de interatividade – a hora de iniciar o aplicativo
- Quadros por segundo – a consistência e a suavidade de nossas animações
- Uso de memória
As estratégias descritas abaixo têm como objetivo principalmente melhorar a resposta da entrada chave. Todos foram identificados, testados e medidos em nossos dispositivos e não são necessariamente aplicáveis em outros ambientes. Como todos “Melhor prática” Sugestões é importante ser cético e verificar se elas funcionam em seu ambiente e para o seu caso de uso. Começamos usando ferramentas de perfil para identificar quais caminhos de código estavam executando e qual era a sua parte do tempo total de renderização; Isso nos levou a algumas observações interessantes.
Observação: React.CreateElement tem um custo
Quando Babel transpila JSX, ele o converte em vários reagir.CreateElement Function Chamadas que, quando avaliadas, produzem uma descrição do próximo componente para renderizar. Se pudermos prever o que a função CreateElement produzirá, podemos incluir a chamada com o resultado esperado no tempo de construção, e não em tempo de execução.
// jsx
render () retornar;
>// Transpilado
render () devolver reagir.CreateElement (MyComponent, < key: 'mykey', prop1: 'foo', prop2: 'bar' >);
>// com conflinamento
render () de retorno tipo: MyComponent,
adereços: Prop1: 'Foo',
Prop2: 'bar'
>,
Chave: 'Mykey'
>;
>
Como você pode ver, removemos completamente o custo da chamada CreateElement, um triunfo para o “Podemos simplesmente não?” Escola de Otimização de Software.
Nós nos perguntamos se seria possível aplicar essa técnica em toda a nossa aplicação e evitar chamar CreateElement inteiramente. O que descobrimos foi que, se usássemos um árbitro em nossos elementos, o CreateElement precisa ser chamado para conectar o proprietário em tempo de execução. Isso também se aplica se você’está usando o operador de spread que pode conter um valor de referência (nós’Voltarei a isso mais tarde).
Usamos um plug -in Babel personalizado para elemento inline, mas há um plug -in oficial que você pode usar agora. Em vez de um objeto literal, o plug -in oficial emitirá uma chamada para uma função auxiliar que provavelmente desaparecerá graças à magia da função V8 que está em linha em linha. Depois de aplicar nosso plugin, ainda havia alguns componentes que estavam’T sendo inlinhado, especificamente componentes de ordem superior que compõem uma parcela decente do total de componentes que estão sendo renderizados em nosso aplicativo.
Problema: componentes de ordem superior podem’t Use inlineing
Adoramos componentes de ordem superior (hocs) como uma alternativa às mixins. Os hocs facilitam a camada do comportamento, mantendo uma separação de preocupações. Queríamos tirar proveito de preenchimento em nossos hocs, mas encontramos um problema: os hocs geralmente agem como um repasse para seus adereços. Isso naturalmente leva ao uso do operador de propagação, o que impede que o plug-in de Babel seja capaz de embalar.
Quando começamos o processo de reescrever nosso aplicativo, decidimos que todas as interações com a camada de renderização passariam por APIs declarativas. Por exemplo, em vez de fazer:
componentDidmount () este.Refs.AlgumWidget.foco()
>
Para mover o foco do aplicativo para um widget específico, implementamos uma API de foco declarativo que nos permite descrever o que deve ser focado durante a renderização assim:
render () retornar />;
>
Isso teve o efeito colateral afortunado de nos permitir evitar o uso de árvores durante todo o aplicativo. Como resultado, fomos capazes de aplicar em preenchimento, independentemente de o código usar um spread ou não.
// Antes de conflinar
render () retornar />;
>// Após o inline
render () de retorno tipo: MyComponent,
adereços: isso.adereços
>;
>
Isso reduziu bastante a quantidade de chamadas de função e a fusão de propriedades que estávamos tendo que precisar, mas não a eliminou completamente.
Problema: a interceptação da propriedade ainda requer uma mesclagem
Depois que conseguimos embalar nossos componentes, nosso aplicativo ainda estava gastando muito tempo mesclando propriedades dentro de nossos hocs. Isso não foi surpreendente, pois os hocs frequentemente interceptam adereços recebidos para adicionar seu próprio ou alterar o valor de um determinado suporte antes de encaminhar para o componente embrulhado.
Fizemos uma análise de como as pilhas de hocs escalaram com a contagem de suporte e a profundidade do componente em um de nossos dispositivos e os resultados foram informativos.
Eles mostraram que há uma relação aproximadamente linear entre o número de adereços que se movem pela pilha e o tempo de renderização para uma determinada profundidade do componente.
Morte por mil adereços
Com base em nossas descobertas, percebemos que poderíamos melhorar o desempenho de nosso aplicativo substancialmente, limitando o número de adereços passados pela pilha. Descobrimos que grupos de adereços eram frequentemente relacionados e sempre mudavam ao mesmo tempo. Nesses casos, fazia sentido agrupar os adereços relacionados em um único “espaço para nome” suporte. Se um suporte para namespace puder ser modelado como um valor imutável, as chamadas subsequentes para as chamadas de concurso devem ser otimizadas, verificando a igualdade referencial, em vez de fazer uma comparação profunda. Isso nos deu algumas boas vitórias, mas eventualmente descobrimos que tínhamos reduzido a contagem de suporte o máximo que era viável. Agora era hora de recorrer a medidas mais extremas.
Mesclando adereços sem iteração de chave
Aviso, aqui estão dragões! Isso não é recomendado e provavelmente quebrará muitas coisas de maneiras estranhas e inesperadas.
Depois de reduzir os adereços que se movem em nosso aplicativo, estávamos experimentando outras maneiras de reduzir o tempo gasto fundindo adereços entre hocs. Percebemos que poderíamos usar a cadeia de protótipo para atingir os mesmos objetivos, evitando a iteração das chaves.
// antes da mesclagem proto
render () const newProps = objeto.atribuir (<>, este.adereços, < prop1: ‘foo’ >)
retornar />;
>// After Proto Merge
render () const newProps = < prop1: ‘foo’ >;
NewProps.__proto__ = isso.adereços;
Tipo de retorno: MyComponent,
Adereços: NewProps
>;
>
No exemplo acima, reduzimos o caso de 100 profundidade 100 de um tempo de renderização de ~ 500ms a ~ 60ms. Esteja aconselhado que o uso dessa abordagem introduzisse alguns bugs interessantes, a saber, no caso de isso.adereços é um objeto congelado . Quando isso acontece, a abordagem da cadeia de protótipos só funciona se o __proto__ for atribuído depois que o objeto NewProps for criado. Escusado será dizer que, se você não é o proprietário da NewProps, não seria aconselhável atribuir o protótipo.
Problema: “Diffing” Styles foi lento
Uma vez que o React saiba os elementos necessários para renderizá -lo, então eles devem diferenciá -los com os valores anteriores para determinar as mudanças mínimas que devem ser aplicadas aos elementos DOM reais. Através do perfil, descobrimos que esse processo era caro, especialmente durante o Monte – em parte devido à necessidade de iterar sobre um grande número de propriedades de estilo.
Separar os adereços de estilo com base no que’é provável que mude
Descobrimos que muitas vezes muitos dos valores de estilo que estávamos definindo nunca foram realmente mudados. Por exemplo, digamos que temos um widget usado para exibir algum valor de texto dinâmico. Possui o texto de propriedades, texto, peso de texto e textcolor. A propriedade de texto mudará durante a vida útil deste widget, mas queremos que as propriedades restantes permaneçam iguais. O custo da diferença nos 4 adereços do estilo de widgets é gasto em cada renderização. Podemos reduzir isso separando as coisas que podem mudar das coisas que não’t.
const memorizedStyleSObject = < textSize: 20, textWeight: ‘bold’, textColor: ‘blue’ >; estilo => />
Se tivermos o cuidado de memorizar o objeto MemoizedStyleSObject, o React-Gibbon pode verificar a igualdade referencial e apenas diferenciar seus valores se essa verificação se mostrar falsa. Isso não tem efeito no tempo necessário para montar o widget, mas compensa em cada renderização subsequente.
Por que não evitar a iteração todos juntos?
Levando essa idéia adiante, se soubermos que estilos estão sendo definidos em um widget específico, podemos escrever uma função que faça o mesmo trabalho sem ter que iterar sobre nenhuma chave. Escrevemos um plug -in Babel personalizado que realizou análises estáticas sobre métodos de renderização de componentes. Ele determina quais estilos serão aplicados e cria uma função de diferença e aplicativo personalizada que é então anexada aos adereços do widget.
// Esta função é escrita pelo plugin de análise estática
função __update __ (widget, nextprops, prevprops) var estilo = nextprops.estilo,
prev_style = prevprops && prevprops.estilo; if (prev_style) var texto = estilo.texto;
if (texto !== prev_style.texto) widget.texto = texto;
>
> else widget.texto = estilo.texto;
>
>Reagir.createClass (render () retorna (
estilo => />
);
>
>);
React-Gibbon internamente procura a presença do “especial” __Update__ Prop e ignorará a iteração usual sobre os adereços anteriores e do próximo estilo, aplicando as propriedades diretamente ao widget se tiverem alterado. Isso teve um enorme impacto em nossos tempos de render.
Desempenho é um recurso
Nosso ambiente é único, mas as técnicas que usamos para identificar oportunidades de melhorias de desempenho não são. Medimos, testamos e verificamos todas as nossas mudanças em dispositivos reais. Essas investigações nos levaram a descobrir um tema comum: a iteração das chaves foi cara. Como resultado, decidimos identificar a fusão em nossa aplicação e determinar se eles poderiam ser otimizados. Aqui’é uma lista de algumas das outras coisas que’Fiz em nossa busca para melhorar o desempenho:
- Componente composto personalizado – hiper otimizado para nossa plataforma
- Telas de montagem para melhorar o tempo de transição percebido
- Agrupamento de componentes em listas
- Memomando de cálculos caros
Construir uma experiência de interface de usuário da Netflix que pode ser executada na variedade de dispositivos que apoiamos é um desafio divertido. Nós nutrimos uma cultura orientada para o desempenho na equipe e estamos constantemente tentando melhorar as experiências para todos, se eles usam o Xbox One S, uma TV inteligente ou um bastão de streaming. Venha se juntar a nós se isso soa como sua jam!
10 aplicativos de reação famosos: exemplos (2023)
Você provavelmente usa aplicativos React todos os dias, enquanto assiste a seus programas de TV favoritos, navegando pelas mídias sociais e verificando seu e -mail. Descubra quais empresas famosas construíram seus aplicativos com reactjs e por quê.
16 de janeiro de 2023
Tl; dr
Índice
Exemplo H2
Exemplo H3
Exemplo H4
Exemplo H5
Exemplo H6
Introdução
Deixar’S Face It – o mundo digital está mudando enquanto falamos. Em tal realidade, é definitivamente difícil se adaptar às tendências. No entanto, é exatamente isso que os grandes nomes da indústria estão fazendo.
Principais aplicativos como Facebook, Instagram, Netflix e outros estão constantemente melhorando sua experiência e se adaptando a novas estruturas e tendências.
Até recentemente, há uma grande palavra de boca por aí Reactjs e suas características impressionantes.
Caso você ainda haja’Não ouvi falar do potencial dos reactjs, eles são numerosos. Basicamente, o React se tornou muito popular entre os desenvolvedores e há muitos recursos que fazem a maioria de seus méritos técnicos – assim como o NodeJS e vários outros Quadroes/Ferramentas Javascript relacionadas.
A prova de sua popularidade é melhor descrita pelos aplicativos que estão usando o ReactJS – e hoje estamos mostrando a lista dos aplicativos mais impressionantes baseados em reactjs.
O que é react?
Para encurtar uma longa história, React é um Biblioteca JavaScript para criar interfaces de usuário. Com muita frequência’é interpretado mal interpretado como uma ferramenta, estrutura, linguagem. Os fornecedores que trabalham com o React são capazes de criar grandes aplicativos da Web que usam dados que podem mudar ao longo do tempo, sem recarregar a página. Seu principal objetivo é ser rápido, simples e escalável. React processos apenas interface de usuário em aplicativos.
É simplesmente um tempo de execução de JavaScript. Leve, rápido e moderno Maneira de executar código no seu computador.
Por que os gigantes da Internet escolhem aplicativos react?
#1 Facebook
Embora parcialmente, O Facebook está usando o ReactJS. Sua página da web é construída com reação, como o script que é misturado no código do aplicativo. O aplicativo móvel também é construído com uma versão do React chamada React Native, que é semelhante, embora responsável por exibir os componentes nativos do iOS e Android em vez dos elementos DOM.
É interessante. Atualmente, o Facebook abriu uma versão beta de seus reactjs completamente reescritos, chamado React Fiber.
#2 Instagram
O uso de reactjs no Instagram é enorme. Uma prova para isso são os inúmeros recursos, incluindo as geolocações, as APIs do Google Maps, a precisão do mecanismo de pesquisa e as tags que aparecem sem hashtags. Está tudo lá na API do aplicativo – e é realmente impressionante.
Instagram é completamente baseado nos reactjs biblioteca e deixou os fãs se adaptarem totalmente aos seus recursos incríveis.
#3 Netflix
A versão React também funciona com a Netflix-especificamente em sua plataforma chamada Gibbon, que é usada para dispositivos de TV de baixo desempenho, em vez do DOM usado em navegadores da Web. A Netflix até publicou uma postagem oficial do blog explicando como a biblioteca Reactjs ajuda sua velocidade de inicialização, desempenho de tempo de execução, modularidade e várias outras vantagens.
Como engenheiros da interface do usuário do estado da Netflix na postagem do blog:
Nossa decisão de adotar o React foi influenciada por vários fatores, principalmente: 1) velocidade de inicialização, 2) desempenho de tempo de execução e 3) modularidade.
#4 New York Times
Há alguns meses, o New York Times projetou um ótimo novo projeto que simula diferentes looks de estrelas no tapete vermelho do Oscar. Obviamente, este projeto’A interface S foi construída no React e permite que os usuários filtrem a galeria de fotos diferentes de 19 anos de uma maneira agradável. A renderização deste projeto é apenas uma das características impressionantes pelas quais podemos agradecer a ReactJs.
Justin Heideman apóia essas razões em seu post no NYTimes Open, afirmando que:
Dentro do nosso aplicativo, criamos lojas leves e de responsabilidade única. Uma loja é responsável por gerenciar uma solicitação de dados específica.
#5 Yahoo! Correspondência
Surpreendentemente (ou não), Yahoo!’S Cliente de email também usa o React. Já que o Facebook possui o Yahoo! Atualmente, a idéia de uma arquitetura sólida e unificada está lá, e é por isso que o React foi incorporado no maior número possível de bits. A arquitetura que é especificamente construída com reação como um pedaço pode ser visto aqui – e o Yahoo! Os desenvolvedores estão resumindo isso como mais fácil de trabalhar com o código e muito melhor.
Os engenheiros que trabalham na plataforma de correio do Yahoo precisavam de muitas atualizações. Como se costuma dizer em um post no Tumblr:
- Fluxo previsível ~ depuração fácil
- Componentes implantáveis independentemente
- Curva de aprendizado mais curta
- Sem dependência de grandes bibliotecas de plataforma
- Reagir implementa o fluxo de dados reativo unidirecional
- O Virtual Dom permite a renderização do lado do cliente e do servidor
- Código em JavaScript
- Comunidade crescente e ativa
#6 Khan Academy
Muitas partes da Academia Khan são baseadas no React atualmente. Um de seus desenvolvedores de JavaScript, Joel Burget, compartilhou sua experiência pessoal com a biblioteca Reactjs e como ela se diferencia da espinha dorsal tradicional script eles estavam usando anteriormente.
Ele obviamente o define como uma atualização digna e passa cuidadosamente pela maioria das características importantes-incluindo o elemento que muda de maneira eficiente e a eliminação de renderizadores desnecessários.
#7 Whatsapp
Embora houvesse vários betas antes de ser lançado oficialmente, o Whatsapp usa o ReactJS Para construir interfaces de usuário no Facebook, assim como ele usa sublinhado.JS e velocidade.JS como alguns de seus motores mais eficientes.
Recentemente, o novo aplicativo Web WhatsApp também está usando o React, assim como a experiência da Web do Facebook mencionada acima
#8 navegador Vivaldi
Uma das tecnologias por trás do popular navegador Vivaldi é a biblioteca Reactjs. O motor que este navegador está usando é nomeado ‘Piscar’ e é praticamente o mesmo que o Google’S Chrome, construído em html5, reactjs, js, css3 e muitos outros motores.
#9 Codecademy
Em agosto de 2014, a Codecademy decidiu incorporar completamente o Facebook’S Biblioteca. Reactjs era obviamente uma parte disso – e ainda é um dos principais scripts que são baseados no aplicativo.
Do cabeçalho para o menu e até a navegação, o uso do ReactJS está tudo lá no CodeAcademy, criado como uma solução lógica que embala todos os componentes para as várias peças.
De acordo com todos na Codeacademy, alguns dos aspectos do reagir que eles apreciam incluem o fato de que o O script é testado em batalha, fácil de pensar, facilita o SEO e é compatível com o código legado e flexível o suficiente para o futuro.
Além disso, provoca a construção de uma comunidade e permite que você pare de se preocupar com a caldeira.
Como se costuma dizer em sua postagem no blog no InfoQ:
React é uma biblioteca leve, poderosa e testada por batalha para a construção de interfaces de usuário com JavaScript. Isto’não é uma estrutura completa, mas uma ferramenta poderosa que pode muito bem mudar a maneira como você aborda o desenvolvimento do front-end. Nós’achei que era uma ferramenta incrivelmente útil para o nosso desenvolvimento de front -end, e nós’estou muito feliz com a nossa escolha.
#10 Dropbox
O Dropbox mudou para o ReactJS há mais de um ano. Na época em que o React se tornou muito popular entre os desenvolvedores de aplicativos.
Os recursos do Plethora O que fazem parte dessa estrutura também são utilizados com eficiência pelo Dropbox-contribuindo amplamente para o sucesso desse incrível serviço de armazenamento baseado em nuvem e solução de backup on-line.
React Apps = Experiência perfeita do usuário
No final, o risco reduzido, a melhoria da eficiência e a eficácia ReactJS Developers relatam, e vários benefícios organizacionais foram todos os motivos para os grandes nomes nos aplicativos atualizarem para reagir e explorar os incríveis benefícios oferecidos por este script.
E mesmo que toda atualização da estrutura tenha seu preço em relação ao tempo e custos, vale a pena quando se trata de criar a experiência perfeita do usuário – seja em uma web ou em um aplicativo móvel.
Recursos:
- https: // yahooeng.Tumblr.com/post/101682875656/evolução-yahoo-mail (imagem)
- https: // twitter.com/reacteurope/status/558097823330492416 (imagem)