SlideShare uma empresa Scribd logo
1 de 22
Facebook
Flux
Hello!
Jonathan Sedrez
Frontend | ilegra
2
3
“Arquitetura de
aplicações para
construir interfaces de
usuário
4
5
Flux
Flux é utilizado para criar aplicaçẽs client-side que trabalhem
de forma reativa. Basicamente uma forma de fluxo
unidirecional de dados entre eventos e ouvintes.
6
7
MVC
Model - View - Controller
MVC
Model
Mantém os dados e o
comportamento de um
aplicativo
View
Exibe a model na
interface do usuário
Controller
Serve como uma
interface entre os
componentes de
visualização e modelo
8
9
Model
View
Controller
Display
Manipula
Requisição
Render
10
Controller
Action Model View
11
Controller
Action Model View
Model
Model
Model
Model
View
View
View
View
Flux
12
13
Dispatcher
Action Store View
Action
Flux
Flux é como um framework que você precisa carregar
para começar a usar. Porém, na verdade o que o
Facebook fez foi: pegar uma coisa chamada fluxo de
dados unidirecional, separar em partes, adicionar um
cara chamado Dispatcher e chamar isso tudo de Flux.
14
15
Dispatch
const Dispatcher = require('flux').Dispatcher;
15
16
Dispatch
handleSave: function() {
const titulo = this.refs.taskName.getDOMNode().value;
AppDispatcher.dispatch({
type: 'novo-item',
data: { titulo: titulo }
});
}
16
17
Store
const _tasks = [];
const TaskStore = {
getAll: function(){
return {
tasks: _tasks
};
},
};
17
18
Store
const TaskStore = {
dispatcherIndex: AppDispatcher.register(function(payload) {
switch(payload.type) {
case 'novo-item':
_tasks.push(payload.data);
break;
case 'delete-item':
//lógica para deletar
break;
}
})
};
18
Flux não é exclusivo para React!
19
20
Conclusão
21
Obrigado!
Duvidas?
22

Mais conteúdo relacionado

Mais procurados

Como criar módulos para magento 2
Como criar módulos para magento 2Como criar módulos para magento 2
Como criar módulos para magento 2Rafael Corrêa Gomes
 
Desenvolvendo APPs Com Angular.JS + Cordova
Desenvolvendo APPs Com Angular.JS �+ CordovaDesenvolvendo APPs Com Angular.JS �+ Cordova
Desenvolvendo APPs Com Angular.JS + CordovaGustavo Costa
 
Primeiros passos no Vue.js
Primeiros passos no Vue.jsPrimeiros passos no Vue.js
Primeiros passos no Vue.jsJoel Rodrigues
 
Sweet Child O' Themes
Sweet Child O' ThemesSweet Child O' Themes
Sweet Child O' ThemesBreno Alves
 
Módulo: 5 – Desenvolvimento de Páginas Web Dinâmicas: Javascript
Módulo: 5 – Desenvolvimento de Páginas Web Dinâmicas: JavascriptMódulo: 5 – Desenvolvimento de Páginas Web Dinâmicas: Javascript
Módulo: 5 – Desenvolvimento de Páginas Web Dinâmicas: JavascriptAgrupamento de Escolas da Batalha
 
Walker Leite apresenta usando o WordPress como backend de aplicação
Walker Leite apresenta usando o WordPress como backend de aplicaçãoWalker Leite apresenta usando o WordPress como backend de aplicação
Walker Leite apresenta usando o WordPress como backend de aplicaçãoWordCamp Floripa
 
Como trabalhar com angular js
Como trabalhar com angular jsComo trabalhar com angular js
Como trabalhar com angular jsMatheus Lima
 
AngularJS - Universidade Positivo - Trabalho
AngularJS -  Universidade Positivo - TrabalhoAngularJS -  Universidade Positivo - Trabalho
AngularJS - Universidade Positivo - TrabalhoGustavoAlves216
 
Guga Alves apresenta Gutenberg fase 2 e 3
Guga Alves apresenta Gutenberg fase 2 e 3Guga Alves apresenta Gutenberg fase 2 e 3
Guga Alves apresenta Gutenberg fase 2 e 3WordCamp Floripa
 
AMP Roadshow SP 2019 - Web Apps Modernas
AMP Roadshow SP 2019 - Web Apps ModernasAMP Roadshow SP 2019 - Web Apps Modernas
AMP Roadshow SP 2019 - Web Apps ModernasDan Vitoriano
 
Arquitetura Web Desacoplada - FCI/Mackenzie
Arquitetura Web Desacoplada - FCI/MackenzieArquitetura Web Desacoplada - FCI/Mackenzie
Arquitetura Web Desacoplada - FCI/MackenzieVivaldo Jose Breternitz
 
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open Web
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open WebNovo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open Web
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open WebLeonardo Balter
 
Novidades asp.net mvc 4
Novidades asp.net mvc 4Novidades asp.net mvc 4
Novidades asp.net mvc 4Cleber Dantas
 

Mais procurados (19)

Como criar módulos para magento 2
Como criar módulos para magento 2Como criar módulos para magento 2
Como criar módulos para magento 2
 
Desenvolvendo APPs Com Angular.JS + Cordova
Desenvolvendo APPs Com Angular.JS �+ CordovaDesenvolvendo APPs Com Angular.JS �+ Cordova
Desenvolvendo APPs Com Angular.JS + Cordova
 
Primeiros passos no Vue.js
Primeiros passos no Vue.jsPrimeiros passos no Vue.js
Primeiros passos no Vue.js
 
Angular js
Angular jsAngular js
Angular js
 
Sweet Child O' Themes
Sweet Child O' ThemesSweet Child O' Themes
Sweet Child O' Themes
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Módulo: 5 – Desenvolvimento de Páginas Web Dinâmicas: Javascript
Módulo: 5 – Desenvolvimento de Páginas Web Dinâmicas: JavascriptMódulo: 5 – Desenvolvimento de Páginas Web Dinâmicas: Javascript
Módulo: 5 – Desenvolvimento de Páginas Web Dinâmicas: Javascript
 
Walker Leite apresenta usando o WordPress como backend de aplicação
Walker Leite apresenta usando o WordPress como backend de aplicaçãoWalker Leite apresenta usando o WordPress como backend de aplicação
Walker Leite apresenta usando o WordPress como backend de aplicação
 
T18_LM3: Ajax
T18_LM3: AjaxT18_LM3: Ajax
T18_LM3: Ajax
 
Como trabalhar com angular js
Como trabalhar com angular jsComo trabalhar com angular js
Como trabalhar com angular js
 
AngularJS - Universidade Positivo - Trabalho
AngularJS -  Universidade Positivo - TrabalhoAngularJS -  Universidade Positivo - Trabalho
AngularJS - Universidade Positivo - Trabalho
 
Guga Alves apresenta Gutenberg fase 2 e 3
Guga Alves apresenta Gutenberg fase 2 e 3Guga Alves apresenta Gutenberg fase 2 e 3
Guga Alves apresenta Gutenberg fase 2 e 3
 
Visão Geral sobre Angular JS
Visão Geral sobre Angular JSVisão Geral sobre Angular JS
Visão Geral sobre Angular JS
 
AMP Roadshow SP 2019 - Web Apps Modernas
AMP Roadshow SP 2019 - Web Apps ModernasAMP Roadshow SP 2019 - Web Apps Modernas
AMP Roadshow SP 2019 - Web Apps Modernas
 
Arquitetura Web Desacoplada - FCI/Mackenzie
Arquitetura Web Desacoplada - FCI/MackenzieArquitetura Web Desacoplada - FCI/Mackenzie
Arquitetura Web Desacoplada - FCI/Mackenzie
 
Blogger
BloggerBlogger
Blogger
 
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open Web
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open WebNovo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open Web
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open Web
 
Novidades asp.net mvc 4
Novidades asp.net mvc 4Novidades asp.net mvc 4
Novidades asp.net mvc 4
 
Boas práticas Magento 2
Boas práticas Magento 2Boas práticas Magento 2
Boas práticas Magento 2
 

Semelhante a Facebook flux

Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Portal GSTI
 
ASP.NET MVC 4 - Introdução - Parte I
ASP.NET MVC 4 - Introdução - Parte IASP.NET MVC 4 - Introdução - Parte I
ASP.NET MVC 4 - Introdução - Parte ICarlos Atila Abreu
 
Desenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endDesenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endGiovanny Valente
 
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
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosRodolfo Fadino Junior
 
Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsIntrodução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsCloves Moreira Junior
 
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVMPadrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVMAricelio Souza
 
Introdução ao Asp.NET MVC
Introdução ao Asp.NET MVCIntrodução ao Asp.NET MVC
Introdução ao Asp.NET MVCBenicio Ávila
 
Reactive Web | A próxima geração de Web Apps
Reactive Web | A próxima geração de Web AppsReactive Web | A próxima geração de Web Apps
Reactive Web | A próxima geração de Web AppsOutSystems User Group
 
Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Vinícius de Paula
 

Semelhante a Facebook flux (20)

Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório
 
ApresentaçãO Mvc
ApresentaçãO MvcApresentaçãO Mvc
ApresentaçãO Mvc
 
Apresentação M V C
Apresentação M V CApresentação M V C
Apresentação M V C
 
ASP.NET MVC 4 - Introdução - Parte I
ASP.NET MVC 4 - Introdução - Parte IASP.NET MVC 4 - Introdução - Parte I
ASP.NET MVC 4 - Introdução - Parte I
 
Desenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endDesenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-end
 
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
 
Treinamento MVC .Net
Treinamento MVC .NetTreinamento MVC .Net
Treinamento MVC .Net
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
 
Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsIntrodução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular js
 
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVMPadrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVM
 
Angular js
Angular jsAngular js
Angular js
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Introdução ao Asp.NET MVC
Introdução ao Asp.NET MVCIntrodução ao Asp.NET MVC
Introdução ao Asp.NET MVC
 
JavaServer Faces
JavaServer FacesJavaServer Faces
JavaServer Faces
 
ASP .NET MVC na Prática
ASP .NET MVC na PráticaASP .NET MVC na Prática
ASP .NET MVC na Prática
 
Palestra ASP.NET MVC
Palestra ASP.NET MVCPalestra ASP.NET MVC
Palestra ASP.NET MVC
 
Jsf
JsfJsf
Jsf
 
Reactive Web | A próxima geração de Web Apps
Reactive Web | A próxima geração de Web AppsReactive Web | A próxima geração de Web Apps
Reactive Web | A próxima geração de Web Apps
 
Mvc - Semifinal
Mvc - SemifinalMvc - Semifinal
Mvc - Semifinal
 
Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.
 

Mais de Jonathan de Britto Sedrez (14)

Typescript 4.1
Typescript 4.1Typescript 4.1
Typescript 4.1
 
Socket.io
Socket.ioSocket.io
Socket.io
 
RSocket
RSocketRSocket
RSocket
 
Rambda
RambdaRambda
Rambda
 
OTA updates
OTA updatesOTA updates
OTA updates
 
OKRs
OKRsOKRs
OKRs
 
Jasmine
Jasmine Jasmine
Jasmine
 
Event bubbling
Event bubblingEvent bubbling
Event bubbling
 
EscmaScript
EscmaScriptEscmaScript
EscmaScript
 
Es2020
Es2020Es2020
Es2020
 
Enzyme js
Enzyme jsEnzyme js
Enzyme js
 
Cypress
CypressCypress
Cypress
 
Chart css
Chart cssChart css
Chart css
 
Bff patterns
Bff patternsBff patterns
Bff patterns
 

Facebook flux

Notas do Editor

  1. O MVC é conhecido por sua arquitetura de desenvolvimento em três camadas e divide os aplicativos em três componentes:
  2. O MVC é conhecido por sua arquitetura de desenvolvimento em três camadas e divide os aplicativos em três componentes:
  3. O MVC é conhecido por sua arquitetura de desenvolvimento em três camadas e divide os aplicativos em três componentes: