Submit Search
Upload
Construindo aplicações reativas com React.js
•
1 like
•
938 views
AI-enhanced title
Henrique Gogó
Follow
Introdução de React.js
Read less
Read more
Technology
Report
Share
Report
Share
1 of 28
Download now
Download to read offline
Recommended
React - Introdução
React - Introdução
Jefferson Mariano de Souza
Introdução ao GitHub e Git
Introdução ao GitHub e Git
Igor Steinmacher
React JS - Parte 1
React JS - Parte 1
Bruno Catão
Basics of React Hooks.pptx.pdf
Basics of React Hooks.pptx.pdf
Knoldus Inc.
Introdução ao React
Introdução ao React
Luiz Paulo dos Prazeres Júnior
React js
React js
Alireza Akbari
Introduction to react_js
Introduction to react_js
MicroPyramid .
React Native na globo.com
React Native na globo.com
Guilherme Heynemann Bruzzi
Recommended
React - Introdução
React - Introdução
Jefferson Mariano de Souza
Introdução ao GitHub e Git
Introdução ao GitHub e Git
Igor Steinmacher
React JS - Parte 1
React JS - Parte 1
Bruno Catão
Basics of React Hooks.pptx.pdf
Basics of React Hooks.pptx.pdf
Knoldus Inc.
Introdução ao React
Introdução ao React
Luiz Paulo dos Prazeres Júnior
React js
React js
Alireza Akbari
Introduction to react_js
Introduction to react_js
MicroPyramid .
React Native na globo.com
React Native na globo.com
Guilherme Heynemann Bruzzi
React-JS.pptx
React-JS.pptx
AnmolPandita7
Node.js e Express
Node.js e Express
Dan Vitoriano
Reactjs
Reactjs
Neha Sharma
Introduction Node.js
Introduction Node.js
Erik van Appeldoorn
TypeScript
TypeScript
Udaiappa Ramachandran
DOMinando JavaScript
DOMinando JavaScript
Thiago Poiani
Curso de Node JS Básico
Curso de Node JS Básico
Victor Hazin da Rocha
TypeScript Best Practices
TypeScript Best Practices
felixbillon
Introduction to React JS for beginners
Introduction to React JS for beginners
Varun Raj
ES6 presentation
ES6 presentation
ritika1
React web development
React web development
Rully Ramanda
Java orientação a objetos (variaveis de instancia e metodos)
Java orientação a objetos (variaveis de instancia e metodos)
Armando Daniel
Node.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançado
Eduardo Bohrer
Object Oriented Programming In JavaScript
Object Oriented Programming In JavaScript
Forziatech
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
Daniel Brandão
.Net Core
.Net Core
Bertrand Le Roy
React + Redux for Web Developers
React + Redux for Web Developers
Jamal Sinclair O'Garro
Introduction to ReactJS
Introduction to ReactJS
Hoang Long
React js
React js
Oswald Campesato
TypeScript Introduction
TypeScript Introduction
Dmitry Sheiko
Intodução ao React
Intodução ao React
Dev PP
Nadando em Dinheiro com jQuery
Nadando em Dinheiro com jQuery
Reinaldo Junior
More Related Content
What's hot
React-JS.pptx
React-JS.pptx
AnmolPandita7
Node.js e Express
Node.js e Express
Dan Vitoriano
Reactjs
Reactjs
Neha Sharma
Introduction Node.js
Introduction Node.js
Erik van Appeldoorn
TypeScript
TypeScript
Udaiappa Ramachandran
DOMinando JavaScript
DOMinando JavaScript
Thiago Poiani
Curso de Node JS Básico
Curso de Node JS Básico
Victor Hazin da Rocha
TypeScript Best Practices
TypeScript Best Practices
felixbillon
Introduction to React JS for beginners
Introduction to React JS for beginners
Varun Raj
ES6 presentation
ES6 presentation
ritika1
React web development
React web development
Rully Ramanda
Java orientação a objetos (variaveis de instancia e metodos)
Java orientação a objetos (variaveis de instancia e metodos)
Armando Daniel
Node.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançado
Eduardo Bohrer
Object Oriented Programming In JavaScript
Object Oriented Programming In JavaScript
Forziatech
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
Daniel Brandão
.Net Core
.Net Core
Bertrand Le Roy
React + Redux for Web Developers
React + Redux for Web Developers
Jamal Sinclair O'Garro
Introduction to ReactJS
Introduction to ReactJS
Hoang Long
React js
React js
Oswald Campesato
TypeScript Introduction
TypeScript Introduction
Dmitry Sheiko
What's hot
(20)
React-JS.pptx
React-JS.pptx
Node.js e Express
Node.js e Express
Reactjs
Reactjs
Introduction Node.js
Introduction Node.js
TypeScript
TypeScript
DOMinando JavaScript
DOMinando JavaScript
Curso de Node JS Básico
Curso de Node JS Básico
TypeScript Best Practices
TypeScript Best Practices
Introduction to React JS for beginners
Introduction to React JS for beginners
ES6 presentation
ES6 presentation
React web development
React web development
Java orientação a objetos (variaveis de instancia e metodos)
Java orientação a objetos (variaveis de instancia e metodos)
Node.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançado
Object Oriented Programming In JavaScript
Object Oriented Programming In JavaScript
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
.Net Core
.Net Core
React + Redux for Web Developers
React + Redux for Web Developers
Introduction to ReactJS
Introduction to ReactJS
React js
React js
TypeScript Introduction
TypeScript Introduction
Similar to Construindo aplicações reativas com React.js
Intodução ao React
Intodução ao React
Dev PP
Nadando em Dinheiro com jQuery
Nadando em Dinheiro com jQuery
Reinaldo Junior
PHP e AJAX: do Request ao Framework
PHP e AJAX: do Request ao Framework
Rafael Dohms
TypeScript em Aplicações Modernas
TypeScript em Aplicações Modernas
Nicolas Takashi
Precisamos falar sobre MERN stack
Precisamos falar sobre MERN stack
Sidney Roberto
Evolução e futuro do uso de paradigmas no JavaScript
Evolução e futuro do uso de paradigmas no JavaScript
Jean Carlo Emer
Java script
Java script
Mozart Diniz
Flávio Almeida MEAN Stack "to be or not to be mean"
Flávio Almeida MEAN Stack "to be or not to be mean"
flaviohalmeida
Encet 2008-ajax java
Encet 2008-ajax java
Fábio José Moraes
Produtividade em Java com Grails
Produtividade em Java com Grails
Wanderson Oliveira
Ajax em java
Ajax em java
Maurício Linhares
Extração de informação no StackOverflow Careers
Extração de informação no StackOverflow Careers
roberta arcoverde
Conceitos de Ajax
Conceitos de Ajax
Handerson Frota
Desafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSF
Rafael Ponte
Groovy na plataforma Java
Groovy na plataforma Java
João Lourenço
JavaScript Model-View no Frontend
JavaScript Model-View no Frontend
Henrique Gogó
TDC 2015 - Rails & Javascript: faça isso direito
TDC 2015 - Rails & Javascript: faça isso direito
Cezinha Anjos
TDC 2011 Goiânia: Evolução da linguagem de programação JavaScript
TDC 2011 Goiânia: Evolução da linguagem de programação JavaScript
Rogério Moraes de Carvalho
PHP e Ajax com XAJAX
PHP e Ajax com XAJAX
Rafael Dohms
Java Web Fácil com VRaptor
Java Web Fácil com VRaptor
Frederico Maia Arantes
Similar to Construindo aplicações reativas com React.js
(20)
Intodução ao React
Intodução ao React
Nadando em Dinheiro com jQuery
Nadando em Dinheiro com jQuery
PHP e AJAX: do Request ao Framework
PHP e AJAX: do Request ao Framework
TypeScript em Aplicações Modernas
TypeScript em Aplicações Modernas
Precisamos falar sobre MERN stack
Precisamos falar sobre MERN stack
Evolução e futuro do uso de paradigmas no JavaScript
Evolução e futuro do uso de paradigmas no JavaScript
Java script
Java script
Flávio Almeida MEAN Stack "to be or not to be mean"
Flávio Almeida MEAN Stack "to be or not to be mean"
Encet 2008-ajax java
Encet 2008-ajax java
Produtividade em Java com Grails
Produtividade em Java com Grails
Ajax em java
Ajax em java
Extração de informação no StackOverflow Careers
Extração de informação no StackOverflow Careers
Conceitos de Ajax
Conceitos de Ajax
Desafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSF
Groovy na plataforma Java
Groovy na plataforma Java
JavaScript Model-View no Frontend
JavaScript Model-View no Frontend
TDC 2015 - Rails & Javascript: faça isso direito
TDC 2015 - Rails & Javascript: faça isso direito
TDC 2011 Goiânia: Evolução da linguagem de programação JavaScript
TDC 2011 Goiânia: Evolução da linguagem de programação JavaScript
PHP e Ajax com XAJAX
PHP e Ajax com XAJAX
Java Web Fácil com VRaptor
Java Web Fácil com VRaptor
More from Henrique Gogó
Be React. Do Tests!
Be React. Do Tests!
Henrique Gogó
Backbone.js + Rails - Front-end e back-end conectados
Backbone.js + Rails - Front-end e back-end conectados
Henrique Gogó
Backbone.js - A espinha dorsal de aplicações web
Backbone.js - A espinha dorsal de aplicações web
Henrique Gogó
PhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha Camarada
Henrique Gogó
NoSQL + Node.js
NoSQL + Node.js
Henrique Gogó
Conhecendo o CouchDB - TDC2011
Conhecendo o CouchDB - TDC2011
Henrique Gogó
Criando aplicações JavaScript com CouchApp + Sammy.js
Criando aplicações JavaScript com CouchApp + Sammy.js
Henrique Gogó
Conhecendo o CouchDB
Conhecendo o CouchDB
Henrique Gogó
Urls amigáveis em JavaScript com Sammy JS
Urls amigáveis em JavaScript com Sammy JS
Henrique Gogó
More from Henrique Gogó
(9)
Be React. Do Tests!
Be React. Do Tests!
Backbone.js + Rails - Front-end e back-end conectados
Backbone.js + Rails - Front-end e back-end conectados
Backbone.js - A espinha dorsal de aplicações web
Backbone.js - A espinha dorsal de aplicações web
PhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha Camarada
NoSQL + Node.js
NoSQL + Node.js
Conhecendo o CouchDB - TDC2011
Conhecendo o CouchDB - TDC2011
Criando aplicações JavaScript com CouchApp + Sammy.js
Criando aplicações JavaScript com CouchApp + Sammy.js
Conhecendo o CouchDB
Conhecendo o CouchDB
Urls amigáveis em JavaScript com Sammy JS
Urls amigáveis em JavaScript com Sammy JS
Construindo aplicações reativas com React.js
1.
React.js Construindo aplicações reativas em JavaScript
2.
Quem sou eu? Henrique Soares Programador desde 2009 (antes era PHP e não conta :D) Instituto Atlântico desde 2012 Entusiasta de JavaScript BrazilJS 2011 JSConfBR 2013 e 2014 Comunidade CEJS (eventos, hackatons, etc)
3.
Como começou o JavaScript JavaScript was created in 10 days in May 1995 by Brendan Eich (Netscape) https://en.wikipedia.org/wiki/JavaScript#History
4.
var person = prompt("Please enter your name"); if (person != null) { document.write("Hello " + person + "!"); }
5.
6.
Coisas Da vida 1995 Netscape cria o JavaScript 1996
ECMA padroniza 1997 ES1 1998 ES2 1999 ES3 regex, try/catch 2005 Jesse James Garrett cunhou o termo Ajax (Prototype, jQuery, Dojo and Mootools) 2008 ES4 (abandonado) 2009 ES5 strict, JSON, Reflect 2015 ES6 class, arrows 2016 ES7 / ES2016 exponentiation operator (**) 2017 ES2017 async/await
7.
Templates EJS, Jade, Mustache.js, Microtemplating etc <ul> <% for(var i=0; i<supplies.length; i++) {%> <li><%= supplies[i] %></li> <% } %> </ul> {{#stooges}} <b>{{name}}</b> {{/stooges}}
8.
Sobre o uso de templates Vantagens Problemas Mudanças dinâmicas no HTML Acoplamento Interage com objetos e varáveis JS de view Pode ficar difícil manter Renderização no client side Delay de renderização (compilação em runtime) Reuso Renderiza mas a página ainda é "burra" – não tem binds Reuso (sim, reuso) – pré carregamento = mais uma requisição
9.
jQuery e DOM Seletores, Eventos, Binds e Callbacks $("input[name=age]").on("change", function() { if ($(this).val() > 15) { console.log("Velhote"); } }); $("form").submit(function() { $.post("/users", $("form").serialize()); return false; });
10.
Sobre o uso de jQuery e binds Vantagens Problemas Separação JS/HTML Lidar com seletores e callbacks pode deixar seu código bagunçado Plugins Se o designer alterar o HTML / DOM, o código quebra Compatibilidade multibrowser Só olhando o código HTML não se sabe os binds e ações dos elementos Extensível Baixo reuso e alta acoplação
11.
Precisamos de modelos para as views
12.
Frameworks Backbone.js (um dos primeiros, poucos usam hoje) Knockout.js (Microsoft adotou) Angular.js (Google) React.js (Facebook)
13.
E o React.js, onde entra? React components implement a render() method that takes input data and returns what to display. This example uses an XMLlike syntax called JSX. Input data that is passed into the component can be accessed by render() via this.props.
14.
Na prática... class Timer extends React.Component { constructor(props) { super(props); this.state = { seconds: 0 }; } tick() { this.setState(prevState => ({ seconds: prevState.seconds + 1 })); } componentDidMount() { this.interval = setInterval(() => this.tick(), 1000); } componentWillUnmount() { clearInterval(this.interval); } render() { return ( <div> Seconds: {this.state.seconds} </div> ); } } ReactDOM.render(<Timer />, document.getElementById('container'));
15.
Virtual DOM No React, para cada objeto DOM, existe um "objeto DOM virtual" correspondente. Um objeto DOM virtual é a representação de um objeto DOM, como uma cópia em memória. Um objeto DOM virtual tem as mesmas propriedades do DOM real mas diferenças quando algo é alterado e sua representação na tela. Manipular DOM é lento. Manipular o DOM virtual é muito mais rápido por que não mexe com nada desenhado na tela. Imagine que manipular um DOM virtual é como editar uma planta baixa ao invés de mover as salas de uma casa construída.
16.
Ciclo de vida dos componentes
17.
Muito parecido com qualquer tecnologia que use componentes
18.
Componentes usam componentes import React, { Component } from 'react'; import {Drawer, List, ListItem, ListItemIcon, ListItemText} from 'materialui'; import {Inbox as InboxIcon, Drafts as DraftsIcon} from 'materialuiicons'; export default class SidebarMenu extends Component { constructor(props) { super(props); this.state = {open: false}; } closeMenu = () => { this.setState({open: false}); } render() { return ( <Drawer open={this.state.open} onRequestClose={this.closeMenu} classes={{paper: classes.menu}}> <List> <Link to='/home' onClick={this.closeMenu}> <ListItem button> <ListItemIcon> <InboxIcon /> </ListItemIcon> <ListItemText primary='Home' /> </ListItem> </Link> <Link to='/about' onClick={this.closeMenu}> <ListItem button> <ListItemIcon> <DraftsIcon /> </ListItemIcon> <ListItemText primary='About' /> </ListItem> </Link> </List> </Drawer> ); } }
19.
20.
Comunicação entre componentes
21.
Props Props são a maneira mais simples de transferir informações entre os componentes. Com props você pode enviar dados do pai para o filho. Props são uma feature central do React. <MeuComponente propriedadeQueDefini="Valor dado" /> class MeuComponente extends Component { render() { return ( <div>{this.props.propriedadeQueDefini}</div> ); } }
22.
Métodos de instância Métodos de instância no componente filho podem ser chamados pelo pai usando refs. class TheChild extends React.Component { myFunc() { return 'hello'; } } class TheParent extends React.Component { render() { return ( <TheChild ref={(foo) => { this.foo = foo; }} /> ); } componentDidMount() { var x = this.foo.myFunc(); // x is now 'hello' } }
23.
Outras maneiras https://www.andrewhfarmer.com/componentcommunication/ Dependendo da complexidade / tamanho da aplicação, é necessário alguma estratégia de gerir essa comunicação entre os componentes, e fazer com que um ou mais componente reaja a uma ação de outro. Nesse cenário o mais recomendado e comum na comunidade é utilizar o Flux (pattern criado pelo Facebook), mais propriamente a sua implementação Redux.
24.
...mas não iremos abordar isso hoje.
25.
Criando uma aplicação do zero a.k.a deixa de blá blá blá e me mostre o código
26.
(Colazinha básica) npm install g createreactapp createreactapp myapp https://github.com/henriquegogo/reactstart
27.
Ecossistema React.js Redux (Implementação do pattern Flux) reactrouter materialui Webpack
28.
Perguntas?
Download now