SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
Front-End & UX/UI Designer na FCamara
25 anos, São Paulo
Nathália Lourenção
“Uma biblioteca JavaScript declarativa,
eficiente e flexível para criar interfaces visuais”
2012 2018
5 Motivos para
aprender RectJS!
• Mercado de trabalho;
• React nos torna desenvolvedores melhores;
• Mobile e outras plataformas – React Native;
• Feito pelo Facebook;
• Você vai gostar de usar React.
O que é React?
React funciona como o V do MVC, permitindo criar seus próprios componentes.
Numa aplicação em React, você deve quebrar os diferentes elementos dela em
pequenos componentes reutilizáveis. Cada vez que algo for complexo, quebre em
pequenas partes e desenvolva esses componentes, essa técnica é chamada
de component driven development.
O React não é um framework, mas sim uma biblioteca.
O React serve para criar interfaces visuais.
Com isso, temos que:
Mas e esse React?
É tipo Angular né?!
O Angular é um framework, ou seja, um conjunto de
ferramentas para resolver vários tipos de coisas. Já uma
biblioteca serve para resolver uma coisa em específico,
no caso do React é renderizar componentes.
https://reactjs.org/blog/2013/06/05/why-react.html
O pessoal que criou o React fez um artigo bem bacana falando o porquê deles
terem criado e algumas de suas vantagens.
Características
• Facilidade de se criar componentes pequenos e reutilizáveis;
• Trabalhar com a abordagem do Virtual DOM, que é bem mais rápido que o DOM nativo;
• O React permite um melhor SEO;
• Testes automatizados.
Resumindo...
E como funciona?
A principal mágica do React é de fato o uso do Virtual DOM, mas como ele funciona?
Como todos sabemos o DOM é super lento e devemos evitar ao máximo manipulá-lo
em excesso, visto que precisaríamos fazer muitos repaints e reflows, que iriam custar
muito para o nosso browser.
É ai que o React Brilha!
Quando um componente é inicializado, o método render é chamado, gerando uma
representação da view. Dessa representação, um HMTL é produzido e injetado no documento.
Quando algum dado muda, o método render é chamado novamente e para que tenhamos
uma atualização mais eficiente possível, o React faz um diferenciação (diff) do valor novo com
o valor velho e aplica no DOM somente a nova mudança.
Ele inicialmente tem a cópia “original” do componente e o
estado que ele deve ter depois, para isso ele faz uma
diferenciação entre os 2 modelos no Virtual DOM, vê o que
precisa mudar e mandar aplicar, somente após isso que as
operações são feitas no DOM real.
React e o seu ecossistema
• React
• JSX
• ES2015
• Webpack
• Redux
...
JSX
O JSX é uma extensão de sintaxe do JavaScript (daí o nome) que nos permite escrever
HTML dentro do JavaScript.
Nos primórdios, o JSX era um dos grandes motivos das críticas e piadas em relação ao
React. Em teoria estávamos voltamos no tempo ao misturar HTML com JavaScript.
JavaScript Syntax eXtension
O React serve para criar componentes, portanto é
importante entender o conceito de componentização
e saber como aplicá-lo para os seus sistemas.
Pensando em
componentes...
<Slide>
<SlideItem>
<SlideTitle>
<SlideSubtitle>
Slide = SlideItem + SlideTitle + SlideSubtitle
A partir disso, já conseguimos montar uma hierarquia desses componentes e subcomponentes, que seria:
Tendo a estrutura de componentes e seus subcomponentes, fica mais fácil de
trabalhar com a abordagem do React e criar suas interfaces.
Com eles temos um reaproveitamento de código maior e uma menor
probabilidade de novos bugs serem introduzidos na aplicação.
Props
Em todos os tipos de paradigmas no desenvolvimento de software, passar parâmetros é
extremamente comum. Com os componentes do React isso não poderia ser diferente.
Abreviação para properties
A diferença é que no React, usamos os props.
O componente abaixo, mostra para o usuário um Hello World:
Imaginando que precisamos mudar a mensagem ‘World’ para alguma outra que for enviada dinamicamente, podemos
reescrever esse componente usando as props dessa forma:
E com isso feito, podemos chamar esse componente dentro de outros assim:
CSS in JS
Todas as boas práticas ao se escrever CSS apontavam para um mesmo caminho por anos:
escrever CSS o mais desacoplado possível do JavaScript e do HTML, usando nomes bem
descritivos para as classes.
Com o sucesso da componentização no React,
a forma de se escrever CSS vem mudando.
A revolução veio com o CSS Modules
Component: styles.css
Colocando a mão na massa!
O que vamos precisar?
• REACT E O REACT-DOM
• ES6
• TRANSPILER - BABEL
• BUNDLER - WEBPACK
npx create-react-app my-app
cd my-app-react
npm start
Módulo CLI
https://github.com/nahlourencao/todo-app
React Native
O React Native é bem parecido com o React, porém ao invés de utilizar componentes web ele
utiliza componentes nativos para a criação dos blocos de construção dos aplicativos.
React-Native é um framework, onde o ReactJS é uma biblioteca de Javascript.
OBRIGADA!
nahlourencao@gmail.com

Mais conteúdo relacionado

Mais procurados

TDC São Paulo 2015 - Interfaces Ricas com Rails e React.JS
TDC São Paulo 2015  - Interfaces Ricas com Rails e React.JSTDC São Paulo 2015  - Interfaces Ricas com Rails e React.JS
TDC São Paulo 2015 - Interfaces Ricas com Rails e React.JSRodrigo Urubatan
 
Primeiros passos para tomar uma decisão de arquitetura com AngularJS.
Primeiros passos para tomar uma decisão de arquitetura com AngularJS.Primeiros passos para tomar uma decisão de arquitetura com AngularJS.
Primeiros passos para tomar uma decisão de arquitetura com AngularJS.Cauê Alves
 
Apresentação AngularJS - Angular UI
Apresentação AngularJS - Angular UIApresentação AngularJS - Angular UI
Apresentação AngularJS - Angular UICecília Rosa
 
Angular - Ruby Morning
Angular - Ruby MorningAngular - Ruby Morning
Angular - Ruby MorningYan Justino
 
Carrefour E-commerce - Multicloud Brasil Day 2017
Carrefour E-commerce - Multicloud Brasil Day 2017Carrefour E-commerce - Multicloud Brasil Day 2017
Carrefour E-commerce - Multicloud Brasil Day 2017Denis Santos
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Daniel Makiyama
 
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Rodrigo Branas
 

Mais procurados (13)

TDC São Paulo 2015 - Interfaces Ricas com Rails e React.JS
TDC São Paulo 2015  - Interfaces Ricas com Rails e React.JSTDC São Paulo 2015  - Interfaces Ricas com Rails e React.JS
TDC São Paulo 2015 - Interfaces Ricas com Rails e React.JS
 
Primeiros passos para tomar uma decisão de arquitetura com AngularJS.
Primeiros passos para tomar uma decisão de arquitetura com AngularJS.Primeiros passos para tomar uma decisão de arquitetura com AngularJS.
Primeiros passos para tomar uma decisão de arquitetura com AngularJS.
 
Angular 2
Angular 2Angular 2
Angular 2
 
Apresentação AngularJS - Angular UI
Apresentação AngularJS - Angular UIApresentação AngularJS - Angular UI
Apresentação AngularJS - Angular UI
 
Angular - Ruby Morning
Angular - Ruby MorningAngular - Ruby Morning
Angular - Ruby Morning
 
Carrefour E-commerce - Multicloud Brasil Day 2017
Carrefour E-commerce - Multicloud Brasil Day 2017Carrefour E-commerce - Multicloud Brasil Day 2017
Carrefour E-commerce - Multicloud Brasil Day 2017
 
Desvendando ASP.NET MVC
Desvendando ASP.NET MVCDesvendando ASP.NET MVC
Desvendando ASP.NET MVC
 
Introdução Vue JS
Introdução Vue JSIntrodução Vue JS
Introdução Vue JS
 
Gradle
GradleGradle
Gradle
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
 
Specflow - Criando uma ponte entre desenvolvedores.
Specflow - Criando uma ponte entre desenvolvedores.Specflow - Criando uma ponte entre desenvolvedores.
Specflow - Criando uma ponte entre desenvolvedores.
 
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
 
Angular js
Angular jsAngular js
Angular js
 

Semelhante a 5 Motivos para aprender ReactJS

435142330-Guia-Completo-React-Js.pdf
435142330-Guia-Completo-React-Js.pdf435142330-Guia-Completo-React-Js.pdf
435142330-Guia-Completo-React-Js.pdfJulia469065
 
Angular, React ou Vue? Comparando os favoritos do JS reativo
Angular, React ou Vue? Comparando os favoritos do JS reativoAngular, React ou Vue? Comparando os favoritos do JS reativo
Angular, React ou Vue? Comparando os favoritos do JS reativoGDGFoz
 
Arquitetura no Android, realmente importa? - TDC 2011
Arquitetura no Android, realmente importa? - TDC 2011Arquitetura no Android, realmente importa? - TDC 2011
Arquitetura no Android, realmente importa? - TDC 2011Marcos Paulo Souza Damasceno
 
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015  Porto Alegre - Interfaces ricas com Rails e React.JSTDC2015  Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JSRodrigo Urubatan
 
Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )
Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )
Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )Getúlio Strapazzon
 
Mvc model view controller - java para desenvolvimento web
Mvc   model view controller - java para desenvolvimento webMvc   model view controller - java para desenvolvimento web
Mvc model view controller - java para desenvolvimento webValdir Junior
 
Intodução ao React
Intodução ao ReactIntodução ao React
Intodução ao ReactDev PP
 
JS Experience 2017 - React + Redux. Pensando em Redux
JS Experience 2017 - React + Redux. Pensando em ReduxJS Experience 2017 - React + Redux. Pensando em Redux
JS Experience 2017 - React + Redux. Pensando em ReduxiMasters
 
Treinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVCTreinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVCMichael Costa
 
Programação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com DojoProgramação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com Dojofabioginzel
 
Reutilização
ReutilizaçãoReutilização
Reutilizaçãoemjorge
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemRodrigo Valerio
 
Desenvolvimento web ágil e descomplicado usando ruby on rails
Desenvolvimento web ágil e descomplicado usando ruby on railsDesenvolvimento web ágil e descomplicado usando ruby on rails
Desenvolvimento web ágil e descomplicado usando ruby on railsMaurício Linhares
 
Introdução JQuery
Introdução JQueryIntrodução JQuery
Introdução JQueryinfo_cimol
 
Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Portal GSTI
 

Semelhante a 5 Motivos para aprender ReactJS (20)

435142330-Guia-Completo-React-Js.pdf
435142330-Guia-Completo-React-Js.pdf435142330-Guia-Completo-React-Js.pdf
435142330-Guia-Completo-React-Js.pdf
 
Introdução ao VUE JS
Introdução ao VUE JSIntrodução ao VUE JS
Introdução ao VUE JS
 
Angular, React ou Vue? Comparando os favoritos do JS reativo
Angular, React ou Vue? Comparando os favoritos do JS reativoAngular, React ou Vue? Comparando os favoritos do JS reativo
Angular, React ou Vue? Comparando os favoritos do JS reativo
 
Arquitetura no Android, realmente importa? - TDC 2011
Arquitetura no Android, realmente importa? - TDC 2011Arquitetura no Android, realmente importa? - TDC 2011
Arquitetura no Android, realmente importa? - TDC 2011
 
Escalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLIDEscalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLID
 
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015  Porto Alegre - Interfaces ricas com Rails e React.JSTDC2015  Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
 
Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )
Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )
Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )
 
Mvc model view controller - java para desenvolvimento web
Mvc   model view controller - java para desenvolvimento webMvc   model view controller - java para desenvolvimento web
Mvc model view controller - java para desenvolvimento web
 
Intodução ao React
Intodução ao ReactIntodução ao React
Intodução ao React
 
JS Experience 2017 - React + Redux. Pensando em Redux
JS Experience 2017 - React + Redux. Pensando em ReduxJS Experience 2017 - React + Redux. Pensando em Redux
JS Experience 2017 - React + Redux. Pensando em Redux
 
React js
React js React js
React js
 
Angular js
Angular jsAngular js
Angular js
 
Treinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVCTreinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVC
 
Programação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com DojoProgramação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com Dojo
 
Reutilização
ReutilizaçãoReutilização
Reutilização
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvem
 
Desenvolvimento web ágil e descomplicado usando ruby on rails
Desenvolvimento web ágil e descomplicado usando ruby on railsDesenvolvimento web ágil e descomplicado usando ruby on rails
Desenvolvimento web ágil e descomplicado usando ruby on rails
 
Angular 2
Angular 2Angular 2
Angular 2
 
Introdução JQuery
Introdução JQueryIntrodução JQuery
Introdução JQuery
 
Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório
 

5 Motivos para aprender ReactJS

  • 1.
  • 2. Front-End & UX/UI Designer na FCamara 25 anos, São Paulo Nathália Lourenção
  • 3. “Uma biblioteca JavaScript declarativa, eficiente e flexível para criar interfaces visuais”
  • 5. 5 Motivos para aprender RectJS! • Mercado de trabalho; • React nos torna desenvolvedores melhores; • Mobile e outras plataformas – React Native; • Feito pelo Facebook; • Você vai gostar de usar React.
  • 6. O que é React? React funciona como o V do MVC, permitindo criar seus próprios componentes. Numa aplicação em React, você deve quebrar os diferentes elementos dela em pequenos componentes reutilizáveis. Cada vez que algo for complexo, quebre em pequenas partes e desenvolva esses componentes, essa técnica é chamada de component driven development.
  • 7. O React não é um framework, mas sim uma biblioteca. O React serve para criar interfaces visuais. Com isso, temos que:
  • 8. Mas e esse React? É tipo Angular né?! O Angular é um framework, ou seja, um conjunto de ferramentas para resolver vários tipos de coisas. Já uma biblioteca serve para resolver uma coisa em específico, no caso do React é renderizar componentes.
  • 9. https://reactjs.org/blog/2013/06/05/why-react.html O pessoal que criou o React fez um artigo bem bacana falando o porquê deles terem criado e algumas de suas vantagens. Características • Facilidade de se criar componentes pequenos e reutilizáveis; • Trabalhar com a abordagem do Virtual DOM, que é bem mais rápido que o DOM nativo; • O React permite um melhor SEO; • Testes automatizados. Resumindo...
  • 10. E como funciona? A principal mágica do React é de fato o uso do Virtual DOM, mas como ele funciona? Como todos sabemos o DOM é super lento e devemos evitar ao máximo manipulá-lo em excesso, visto que precisaríamos fazer muitos repaints e reflows, que iriam custar muito para o nosso browser.
  • 11. É ai que o React Brilha! Quando um componente é inicializado, o método render é chamado, gerando uma representação da view. Dessa representação, um HMTL é produzido e injetado no documento. Quando algum dado muda, o método render é chamado novamente e para que tenhamos uma atualização mais eficiente possível, o React faz um diferenciação (diff) do valor novo com o valor velho e aplica no DOM somente a nova mudança.
  • 12. Ele inicialmente tem a cópia “original” do componente e o estado que ele deve ter depois, para isso ele faz uma diferenciação entre os 2 modelos no Virtual DOM, vê o que precisa mudar e mandar aplicar, somente após isso que as operações são feitas no DOM real.
  • 13. React e o seu ecossistema • React • JSX • ES2015 • Webpack • Redux ...
  • 14. JSX O JSX é uma extensão de sintaxe do JavaScript (daí o nome) que nos permite escrever HTML dentro do JavaScript. Nos primórdios, o JSX era um dos grandes motivos das críticas e piadas em relação ao React. Em teoria estávamos voltamos no tempo ao misturar HTML com JavaScript. JavaScript Syntax eXtension
  • 15. O React serve para criar componentes, portanto é importante entender o conceito de componentização e saber como aplicá-lo para os seus sistemas. Pensando em componentes...
  • 19. Slide = SlideItem + SlideTitle + SlideSubtitle A partir disso, já conseguimos montar uma hierarquia desses componentes e subcomponentes, que seria: Tendo a estrutura de componentes e seus subcomponentes, fica mais fácil de trabalhar com a abordagem do React e criar suas interfaces. Com eles temos um reaproveitamento de código maior e uma menor probabilidade de novos bugs serem introduzidos na aplicação.
  • 20. Props Em todos os tipos de paradigmas no desenvolvimento de software, passar parâmetros é extremamente comum. Com os componentes do React isso não poderia ser diferente. Abreviação para properties A diferença é que no React, usamos os props.
  • 21. O componente abaixo, mostra para o usuário um Hello World: Imaginando que precisamos mudar a mensagem ‘World’ para alguma outra que for enviada dinamicamente, podemos reescrever esse componente usando as props dessa forma:
  • 22. E com isso feito, podemos chamar esse componente dentro de outros assim:
  • 23. CSS in JS Todas as boas práticas ao se escrever CSS apontavam para um mesmo caminho por anos: escrever CSS o mais desacoplado possível do JavaScript e do HTML, usando nomes bem descritivos para as classes. Com o sucesso da componentização no React, a forma de se escrever CSS vem mudando.
  • 24. A revolução veio com o CSS Modules Component: styles.css
  • 25. Colocando a mão na massa!
  • 26. O que vamos precisar? • REACT E O REACT-DOM • ES6 • TRANSPILER - BABEL • BUNDLER - WEBPACK
  • 27.
  • 28. npx create-react-app my-app cd my-app-react npm start Módulo CLI
  • 29.
  • 31. React Native O React Native é bem parecido com o React, porém ao invés de utilizar componentes web ele utiliza componentes nativos para a criação dos blocos de construção dos aplicativos. React-Native é um framework, onde o ReactJS é uma biblioteca de Javascript.