{"id":8592,"date":"2025-06-11T10:26:07","date_gmt":"2025-06-11T13:26:07","guid":{"rendered":"https:\/\/geekblogti.wpengine.com\/?p=8592"},"modified":"2025-06-19T10:25:18","modified_gmt":"2025-06-19T13:25:18","slug":"flux","status":"publish","type":"post","link":"https:\/\/www.geekhunter.com/pt/blog\/flux\/","title":{"rendered":"Flux: Entendendo a arquitetura com React"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">O que \u00e9 Flux?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Flux <\/strong>\u00e9 uma arquitetura usada pelo Facebook junto com o framework <strong><a href=\"https:\/\/geekblogti.wpengine.com\/criando-componentes-react-componentes-de-classe-e-funcional-sem-estado\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"React (abre numa nova aba)\">React<\/a><\/strong>. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mas, talvez seja mais f\u00e1cil come\u00e7ar falando o que Flux n\u00e3o \u00e9 e com o que ele n\u00e3o deve ser comparado para facilitar o entendimento!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Flux <strong>n\u00e3o \u00e9<\/strong> um framework ou biblioteca. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Comparemos ele com a <strong>arquitetura MVC<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No lugar de dividir a aplica\u00e7\u00e3o entre Model, View e Controller, com Flux h\u00e1 a sugest\u00e3o de dividir em<strong> Stores, Dispatcher, Views, Action\/Action Creators<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Uma vis\u00e3o <strong>simples <\/strong>da constru\u00e7\u00e3o desse fluxo seria algo como:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img fetchpriority=\"high\" decoding=\"async\" width=\"750\" height=\"410\" src=\"https:\/\/geekblogti.wpengine.com\/wp-content\/uploads\/2019\/12\/estados-flux.png\" alt=\"estados-flux\" class=\"wp-image-8594\" srcset=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/12\/estados-flux.png 750w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/12\/estados-flux-150x82.png 150w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/12\/estados-flux-100x55.png 100w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/12\/estados-flux-600x328.png 600w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/12\/estados-flux-450x246.png 450w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><figcaption>Estados do Flux <\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Talvez j\u00e1 tenha visto algumas imagens como essa quando estava tentando entender MVC.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">E geralmente vinham com uma explica\u00e7\u00e3o de cada item, exatamente como farei agora:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Views <\/strong>&#8211; A interface do usu\u00e1rio, renderiza e cuida das intera\u00e7\u00f5es com o usu\u00e1rio, de onde partir\u00e1 os callbacks para criar as actions.<\/li><li><strong>Actions <\/strong>&#8211; Eventos que passam os dados para o dispatcher.<\/li><li><strong>Dispatcher <\/strong>&#8211; Recebe os dados e envia para todos os stores registrados para ouvir \u00e0quela action.<\/li><li><strong>Stores <\/strong>&#8211; Recebe as actions contendo os dados e emite eventos, eventos estes que ir\u00e3o atualizar os dados dos states, fazendo com que as views sejam renderizadas novamente.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Destrinchando a teoria<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"750\" height=\"410\" src=\"https:\/\/geekblogti.wpengine.com\/wp-content\/uploads\/2019\/12\/passos-flux.png\" alt=\"passos-flux\" class=\"wp-image-8606\" srcset=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/12\/passos-flux.png 750w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/12\/passos-flux-150x82.png 150w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/12\/passos-flux-100x55.png 100w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/12\/passos-flux-600x328.png 600w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/12\/passos-flux-450x246.png 450w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><figcaption>Plano macro dos passos de Flux <\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"> Fluxo <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Quando um evento ocorre, por exemplo:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"> Adicionar um novo item a uma lista.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">H\u00e1 uma fun\u00e7\u00e3o de <strong>callback<\/strong>, que criar\u00e1 uma <strong>action <\/strong>com os dados necess\u00e1rios e envia como um objeto para o <strong>dispatcher<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O dispatcher, que tem registrado qual store receber\u00e1 tal action, envia os dados para a mesma.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">E assim, como a store \u00e9 onde toda a l\u00f3gica do neg\u00f3cio est\u00e1, ir\u00e1 atualizar a view <strong>retornando os novos valores<\/strong>.\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Funciona bem<\/strong> para o estilo de programa\u00e7\u00e3o do React.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">J\u00e1 que as stores enviam updates sem a necessidade de detalhar como ser\u00e1 a transi\u00e7\u00e3o entre states e views.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Isso prova o padr\u00e3o do Flux que segue um <strong>fluxo de dados unidirecional<\/strong>.\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A action, dispatcher, store e view s\u00e3o <strong>independentes <\/strong>com entradas e sa\u00eddas espec\u00edficas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Os dados passam pelo dispatcher, que gerencia\u00a0 e age como um registro de todos os callbacks que as stores respondem.\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"> As stores emitem a mudan\u00e7a que ser\u00e1 pega pelas views.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cada store registra um callback com o dispatcher.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sempre que algum dado entra, o dispatcher \u00e9 o respons\u00e1vel para visualizar a action que est\u00e1 registrada e enviar para a store que fez o registro.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por sua vez, retorna o resultado que, atualizando os dados, faz com que os componentes que tenham liga\u00e7\u00e3o com a store, sejam novamente renderizados com as <strong>novas informa\u00e7\u00f5e<\/strong>s! <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Compara\u00e7\u00e3o com o MVC e o Facebook<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para muitos, o primeiro contato com uma arquitetura extremamente conhecida e poderosa \u00e9 a do <strong>MVC<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Que consiste basicamente de Model, que cuidar\u00e1 dos dados da aplica\u00e7\u00e3o View. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Representa a interface do usu\u00e1rio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por fim, o controller, que usa das entradas do usu\u00e1rio para manipular o model e atualiza a view com o <strong>novo conte\u00fado<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c9 um Fluxo simples, mas que rendeu uma grande dor de cabe\u00e7a ao Facebook.\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por terem uma base de dados gigantesca, fazia com que cada pequena mudan\u00e7a, houvesse um efeito cascata de fun\u00e7\u00f5es.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O problema foi apontado como sendo <strong>comunica\u00e7\u00e3o bidirecional do MVC<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">J\u00e1 que o fluxo sempre segue a mesma linha, usu\u00e1rio usa o controller que manipula o model, assim atualizando a view que chega aos olhos do usu\u00e1rio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quantas vezes no pr\u00f3prio trabalho encontramos telas que tem que tomar o <strong>maior cuidado poss\u00edvel<\/strong>? <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ser t\u00e3o <strong>poderosa <\/strong>que, na menor mudan\u00e7a, chamaria tantas fun\u00e7\u00f5es em sequ\u00eancia que ficaria dif\u00edcil at\u00e9 mesmo debugar o c\u00f3digo e realmente entender o que est\u00e1 sendo feito.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para resolver o problema da comunica\u00e7\u00e3o bidirecional, o mesmo foi trocado por um<strong> fluxo unidirecional<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Onde, para uma compara\u00e7\u00e3o mais direta:<\/p>\n\n\n\n<table class=\"wp-block-table\"><tbody><tr><td><strong>MVC<\/strong><\/td><td><strong>Flux<\/strong><\/td><\/tr><tr><td><em>Fluxo de dados bidirecional<\/em><\/td><td><em>Fluxo de dados unidirecional<\/em><\/td><\/tr><tr><td><em>Liga\u00e7\u00e3o de dados \u00e9 a chave<\/em><\/td><td><em>Events e actions s\u00e3o as partes principais<\/em><\/td><\/tr><tr><td><em>Os controllers cuidam da l\u00f3gica do neg\u00f3cio<\/em><\/td><td><em>A store faz todos os c\u00e1lculos<\/em><\/td><\/tr><tr><td>S\u00edncrono<\/td><td>Pode ser implementado de forma completamente ass\u00edncrona!<\/td><\/tr><tr><td>Uma arquitetura conhecida usada por diversas empresas e muitos projetos<\/td><td>Ajuda a resolver problemas complexos que o MVC n\u00e3o corrigia facilmente<\/td><\/tr><\/tbody><\/table>\n\n\n\n<h2 class=\"wp-block-heading\">Exemplo em c\u00f3digo &#8211; TodoList<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Certo!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Destrinchamos bastante da teoria, mas ela sem <strong>pr\u00e1tica <\/strong>n\u00e3o fixa bem, ent\u00e3o vamos ao<strong> fluxo de informa\u00e7\u00f5es no c\u00f3digo<\/strong>, parte por parte.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Usaremos partes do c\u00f3digo de uma TodoList (lista de afazeres) que est\u00e1 no reposit\u00f3rio do Facebook! <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Come\u00e7amos carregando a lista:<\/p>\n\n\n\n<script src=\"https:\/\/gist.github.com\/geekhunterbr\/278604573a08a68db850468857a8e89c.js\"><\/script>\n\n\n\n<p class=\"wp-block-paragraph\">Com a lista carregada, iremos carregar um novo item para a lista, com o componente fazendo um callback:<\/p>\n\n\n\n<script src=\"https:\/\/gist.github.com\/VyseClown\/6ba81dac7eca026c63dd4c55d1e14f01.js\"><\/script>\n\n\n\n<p class=\"wp-block-paragraph\">Acompanhemos a fun\u00e7\u00e3o \u201c_onSave\u201d!<br> O nosso callback chamar\u00e1 o metodo que ir\u00e1 criar a nossa action!<\/p>\n\n\n\n<script src=\"https:\/\/gist.github.com\/VyseClown\/84c84cc25591fd50f8cc24f98bc9a5a1.js\"><\/script>\n\n\n\n<p class=\"wp-block-paragraph\">Finalmente, chegamos em nossa action, ela receber\u00e1 o texto a ser adicionado, ap\u00f3s isso ir\u00e1 passar para o dispatcher!<\/p>\n\n\n\n<script src=\"https:\/\/gist.github.com\/VyseClown\/c93ac90431618bddeba1da79dc79bd60.js\"><\/script>\n\n\n\n<p class=\"wp-block-paragraph\">O dispatcher ir\u00e1 passar a action para as stores, entrando onde a action estiver registrada!<\/p>\n\n\n\n<script src=\"https:\/\/gist.github.com\/VyseClown\/f916dcb386a65e2b16d3b93594f6046d.js\"><\/script>\n\n\n\n<p class=\"wp-block-paragraph\">E aqui \u00e9 onde a m\u00e1gica acontece, na store finalmente a <strong>mudan\u00e7a \u00e9 feita<\/strong>!<\/p>\n\n\n\n<script src=\"https:\/\/gist.github.com\/VyseClown\/b8657f283ad4d300566eae9f784e1a3c.js\"><\/script>\n\n\n\n<p class=\"wp-block-paragraph\">Certo, mudan\u00e7a feita, precisamos levar a mudan\u00e7a novamente para a nossa interface, e fazemos isso emitindo um changeEvent:<\/p>\n\n\n\n<script src=\"https:\/\/gist.github.com\/VyseClown\/23f09e3a61490463c0193ae8b10877bd.js\"><\/script>\n\n\n\n<p class=\"wp-block-paragraph\">E claro, teremos o c\u00f3digo para atender esse evento.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Onde o componente que est\u00e1 ouvindo mudan\u00e7as, ir\u00e1 mudar o estado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">E como toda boa mudan\u00e7a em React, ir\u00e1 renderizar o componente na view novamente com o novo valor que ser\u00e1 visualizado pelo usu\u00e1rio!<\/p>\n\n\n\n<script src=\"https:\/\/gist.github.com\/VyseClown\/7a3ad8cdcf2e1c946d415da359a48553.js\"><\/script>\n\n\n\n<h2 class=\"wp-block-heading\">Flux \u00e9 melhor que MVC?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">N\u00e3o diria melhor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A grande diferen\u00e7a seria <strong>as tecnologias escolhidas<\/strong> para desenvolvimento.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O Flux tem uma \u00f3tima <strong>sinergia <\/strong>com desenvolvimento web baseado em componentes, como <a rel=\"noreferrer noopener\" aria-label=\"React, Vue.js e Angular 2+ (abre numa nova aba)\" href=\"https:\/\/geekblogti.wpengine.com\/react-vs-vue-vs-angular-qual-escolher\/\" target=\"_blank\">React, Vue.js e Angular 2+<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No fim do dia, o melhor ser\u00e1 espelhado nas decis\u00f5es que a equipe fizer baseada no que tem mais <strong>familiariza\u00e7\u00e3o<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ou quando querem dar uma chance para uma tecnologia com um enorme <strong>potencial<\/strong>!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">E considerando o tamanho que o React j\u00e1 tem, diria que <strong>ultrapassou o n\u00edvel de tecnologia<\/strong>. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hoje, est\u00e1 no tamanho certo de comunidade\/estabilidade para voc\u00ea dedicar um tempo estudando, porque a <strong>demanda est\u00e1 gigante<\/strong>!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Para concluir<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Hoje tentamos entender da<strong> melhor forma poss\u00edvel <\/strong>como esse novo padr\u00e3o funciona.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Desde da teoria, at\u00e9 uma pequena olhada em como funciona no c\u00f3digo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">E ter um novo padr\u00e3o que<strong> muda nossa forma de desenvolver <\/strong>\u00e9 uma das m\u00e1gicas dessa \u00e1rea maravilhosa de desenvolvimento.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sempre teremos <strong>algo novo para ver, estudar, testar e aplicar <\/strong>no nosso dia a dia!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Agora, ao dar uma<a rel=\"noreferrer noopener\" aria-label=\" olhadinha nas vagas (abre numa nova aba)\" href=\"https:\/\/www.geekhunter.com.br\/vagas\" target=\"_blank\"> olhadinha na p\u00e1gina de vagas para desenvolvedores<\/a> (tenho certeza que que j\u00e1 deve ter visto algumas, n\u00e3o \u00e9?), <a rel=\"noreferrer noopener\" aria-label=\"vagas de React (abre numa nova aba)\" href=\"https:\/\/www.geekhunter.com.br\/vagas-react\" target=\"_blank\">vagas de React<\/a> geralmente vem com a palavrinha Redux junto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Com certeza, destrincharemos essa biblioteca em uma pr\u00f3xima oportunidade! <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">At\u00e9! <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>O que \u00e9 Flux? Flux \u00e9 uma arquitetura usada pelo Facebook junto com o framework React. Mas, talvez seja mais f\u00e1cil come\u00e7ar falando o que Flux n\u00e3o \u00e9 e com o que ele n\u00e3o deve ser comparado para facilitar o entendimento! Flux n\u00e3o \u00e9 um framework ou biblioteca. Comparemos ele com a arquitetura MVC. No [&hellip;]<\/p>\n","protected":false},"author":167,"featured_media":8605,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[18],"tags":[],"class_list":["post-8592","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desenvolvimiento-de-software"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.3 (Yoast SEO v28.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Os estados do Flux e a Arquitetura de React | GeekBlog<\/title>\n<meta name=\"description\" content=\"Flux n\u00e3o \u00e9 um framework ou biblioteca! Clique aqui para saber que raios \u00e9 Flux e como ele est\u00e1 relacionado com a arquitetura de React ;)\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.geekhunter.com\/pt\/blog\/flux\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Flux: Entendendo a arquitetura com React\" \/>\n<meta property=\"og:description\" content=\"O que \u00e9 Flux? Flux \u00e9 uma arquitetura usada pelo Facebook junto com o framework React. Mas, talvez seja mais f\u00e1cil come\u00e7ar falando o que Flux n\u00e3o \u00e9 e com o\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.geekhunter.com\/pt\/blog\/flux\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Geekhunter\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/geekhunterbr\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-06-11T13:26:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-19T13:25:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/12\/Flux.png\" \/>\n\t<meta property=\"og:image:width\" content=\"740\" \/>\n\t<meta property=\"og:image:height\" content=\"410\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Geekhunter\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@geekhunterbr\" \/>\n<meta name=\"twitter:site\" content=\"@geekhunterbr\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Geekhunter\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/flux\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/flux\\\/\"},\"author\":{\"name\":\"Geekhunter\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#\\\/schema\\\/person\\\/9f62b173345139f7bbdaf55312c3d400\"},\"headline\":\"Flux: Entendendo a arquitetura com React\",\"datePublished\":\"2025-06-11T13:26:07+00:00\",\"dateModified\":\"2025-06-19T13:25:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/flux\\\/\"},\"wordCount\":1162,\"publisher\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/flux\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/wp-content\\\/uploads\\\/2019\\\/12\\\/Flux.png\",\"articleSection\":[\"Desenvolvimiento de software\"],\"inLanguage\":\"pt-BR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/flux\\\/\",\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/flux\\\/\",\"name\":\"Os estados do Flux e a Arquitetura de React | GeekBlog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/flux\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/flux\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/wp-content\\\/uploads\\\/2019\\\/12\\\/Flux.png\",\"datePublished\":\"2025-06-11T13:26:07+00:00\",\"dateModified\":\"2025-06-19T13:25:18+00:00\",\"description\":\"Flux n\u00e3o \u00e9 um framework ou biblioteca! Clique aqui para saber que raios \u00e9 Flux e como ele est\u00e1 relacionado com a arquitetura de React ;)\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/flux\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/flux\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/flux\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/12\\\/Flux.png\",\"contentUrl\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/wp-content\\\/uploads\\\/2019\\\/12\\\/Flux.png\",\"width\":740,\"height\":410,\"caption\":\"flux\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/flux\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mundo TI\",\"item\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/category\\\/mundo-ti\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Desenvolvimiento de software\",\"item\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/category\\\/mundo-ti\\\/desenvolvimiento-de-software\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Flux: Entendendo a arquitetura com React\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/\",\"name\":\"Blog de TI\",\"description\":\"Dicas para o RH e profissionais da \u00e1rea TI\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#organization\",\"name\":\"GeekHunter\",\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/icon-1.png\",\"contentUrl\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/icon-1.png\",\"width\":300,\"height\":300,\"caption\":\"GeekHunter\"},\"image\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/geekhunterbr\\\/\",\"https:\\\/\\\/x.com\\\/geekhunterbr\",\"https:\\\/\\\/www.instagram.com\\\/geekhunterbr\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/geekhunter-brasil\\\/\",\"https:\\\/\\\/www.youtube.com\\\/@GeekHunterOfficial\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#\\\/schema\\\/person\\\/9f62b173345139f7bbdaf55312c3d400\",\"name\":\"Geekhunter\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/09a0f76de8cf1fa3621f8b73417ce43344b42e1324a07a9af24f57c5eef49840?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/09a0f76de8cf1fa3621f8b73417ce43344b42e1324a07a9af24f57c5eef49840?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/09a0f76de8cf1fa3621f8b73417ce43344b42e1324a07a9af24f57c5eef49840?s=96&d=mm&r=g\",\"caption\":\"Geekhunter\"},\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/author\\\/matias\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Os estados do Flux e a Arquitetura de React | GeekBlog","description":"Flux n\u00e3o \u00e9 um framework ou biblioteca! Clique aqui para saber que raios \u00e9 Flux e como ele est\u00e1 relacionado com a arquitetura de React ;)","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.geekhunter.com\/pt\/blog\/flux\/","og_locale":"pt_BR","og_type":"article","og_title":"Flux: Entendendo a arquitetura com React","og_description":"O que \u00e9 Flux? Flux \u00e9 uma arquitetura usada pelo Facebook junto com o framework React. Mas, talvez seja mais f\u00e1cil come\u00e7ar falando o que Flux n\u00e3o \u00e9 e com o","og_url":"https:\/\/www.geekhunter.com\/pt\/blog\/flux\/","og_site_name":"Blog Geekhunter","article_publisher":"https:\/\/www.facebook.com\/geekhunterbr\/","article_published_time":"2025-06-11T13:26:07+00:00","article_modified_time":"2025-06-19T13:25:18+00:00","og_image":[{"width":740,"height":410,"url":"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/12\/Flux.png","type":"image\/png"}],"author":"Geekhunter","twitter_card":"summary_large_image","twitter_creator":"@geekhunterbr","twitter_site":"@geekhunterbr","twitter_misc":{"Escrito por":"Geekhunter","Est. tempo de leitura":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/flux\/#article","isPartOf":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/flux\/"},"author":{"name":"Geekhunter","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#\/schema\/person\/9f62b173345139f7bbdaf55312c3d400"},"headline":"Flux: Entendendo a arquitetura com React","datePublished":"2025-06-11T13:26:07+00:00","dateModified":"2025-06-19T13:25:18+00:00","mainEntityOfPage":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/flux\/"},"wordCount":1162,"publisher":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#organization"},"image":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/flux\/#primaryimage"},"thumbnailUrl":"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/12\/Flux.png","articleSection":["Desenvolvimiento de software"],"inLanguage":"pt-BR"},{"@type":"WebPage","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/flux\/","url":"https:\/\/www.geekhunter.com\/pt\/blog\/flux\/","name":"Os estados do Flux e a Arquitetura de React | GeekBlog","isPartOf":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/flux\/#primaryimage"},"image":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/flux\/#primaryimage"},"thumbnailUrl":"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/12\/Flux.png","datePublished":"2025-06-11T13:26:07+00:00","dateModified":"2025-06-19T13:25:18+00:00","description":"Flux n\u00e3o \u00e9 um framework ou biblioteca! Clique aqui para saber que raios \u00e9 Flux e como ele est\u00e1 relacionado com a arquitetura de React ;)","breadcrumb":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/flux\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.geekhunter.com/pt/blog\/flux\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/flux\/#primaryimage","url":"https:\/\/www.geekhunter.com\/pt\/blog\/wp-content\/uploads\/2019\/12\/Flux.png","contentUrl":"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/12\/Flux.png","width":740,"height":410,"caption":"flux"},{"@type":"BreadcrumbList","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/flux\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/www.geekhunter.com/pt/blog\/"},{"@type":"ListItem","position":2,"name":"Mundo TI","item":"https:\/\/www.geekhunter.com/pt/blog\/category\/mundo-ti\/"},{"@type":"ListItem","position":3,"name":"Desenvolvimiento de software","item":"https:\/\/www.geekhunter.com/pt/blog\/category\/mundo-ti\/desenvolvimiento-de-software\/"},{"@type":"ListItem","position":4,"name":"Flux: Entendendo a arquitetura com React"}]},{"@type":"WebSite","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#website","url":"https:\/\/www.geekhunter.com\/pt\/blog\/","name":"Blog de TI","description":"Dicas para o RH e profissionais da \u00e1rea TI","publisher":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.geekhunter.com/pt/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#organization","name":"GeekHunter","url":"https:\/\/www.geekhunter.com\/pt\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.geekhunter.com\/pt\/blog\/wp-content\/uploads\/2024\/10\/icon-1.png","contentUrl":"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2024\/10\/icon-1.png","width":300,"height":300,"caption":"GeekHunter"},"image":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/geekhunterbr\/","https:\/\/x.com\/geekhunterbr","https:\/\/www.instagram.com\/geekhunterbr\/","https:\/\/www.linkedin.com\/company\/geekhunter-brasil\/","https:\/\/www.youtube.com\/@GeekHunterOfficial"]},{"@type":"Person","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#\/schema\/person\/9f62b173345139f7bbdaf55312c3d400","name":"Geekhunter","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/09a0f76de8cf1fa3621f8b73417ce43344b42e1324a07a9af24f57c5eef49840?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/09a0f76de8cf1fa3621f8b73417ce43344b42e1324a07a9af24f57c5eef49840?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/09a0f76de8cf1fa3621f8b73417ce43344b42e1324a07a9af24f57c5eef49840?s=96&d=mm&r=g","caption":"Geekhunter"},"url":"https:\/\/www.geekhunter.com\/pt\/blog\/author\/matias\/"}]}},"_links":{"self":[{"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/posts\/8592","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/users\/167"}],"replies":[{"embeddable":true,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/comments?post=8592"}],"version-history":[{"count":0,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/posts\/8592\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/media\/8605"}],"wp:attachment":[{"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/media?parent=8592"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/categories?post=8592"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/tags?post=8592"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}