{"id":2493,"date":"2016-10-18T08:51:22","date_gmt":"2016-10-18T10:51:22","guid":{"rendered":"https:\/\/www.kinghost.com.br\/wiki\/?post_type=article&#038;p=2493"},"modified":"2021-06-10T08:49:56","modified_gmt":"2021-06-10T11:49:56","slug":"react-javascript","status":"publish","type":"article","link":"https:\/\/king.host\/wiki\/artigo\/react-javascript\/","title":{"rendered":"React Javascript"},"content":{"rendered":"\n<p>O <strong>React<\/strong> \u00e9 uma biblioteca Javascript open source, desenvolvida pelo Facebook para criar interfaces para aplica\u00e7\u00f5es web. Atrav\u00e9s dele, pode-se criar interfaces de usu\u00e1rios utilizando c\u00f3digo Javascript.<br>\nPode ser utilizado em aplica\u00e7\u00f5es de grande porte e grandes empresas o utilizam como, por exemplo: Facebook, Instagram e Netflix.<br>\nSite oficial: <a href=\"https:\/\/facebook.github.io\/react\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/facebook.github.io\/react\/<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Sobre_o_React_Javascript\"><\/span>Sobre o React Javascript<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>O React fornece uma maneira de representar objetos na forma de componentes e gerenciar automaticamente o seu estado. As atualiza\u00e7\u00f5es na interface s\u00e3o autom\u00e1ticas, r\u00e1pidas (virtual DOM), e refletem as modifica\u00e7\u00f5es nas propriedades do objeto. Esses objetos s\u00e3o descritos declarativamente, como componentes reutiliz\u00e1veis, usando uma sintaxe pr\u00f3pria (JSX) \u2013 um dos pontos fortes do React. Os componentes podem ser compostos por outros componentes: os dados fluem em um \u00fanico sentido, propagando mudan\u00e7as de estado para os componentes filhos.<\/p>\n\n\n\n<p><strong>O React n\u00e3o \u00e9 um framework (como o Node.js ou AngularJS, por exemplo), ele implementa apenas a view do modelo MVC (model-view-controller).<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Virtual_DOM\"><\/span>Virtual DOM<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>DOM \u00e9 um padr\u00e3o de representa\u00e7\u00e3o e intera\u00e7\u00e3o de objetos para documentos HTML. Manipular o DOM normal \u00e9 algo que causa bastante gargalo nas aplica\u00e7\u00f5es web.<br>\nO React cria uma representa\u00e7\u00e3o do DOM em mem\u00f3ria, chamada <strong>Virtual DOM<\/strong>. Quando \u00e9 necess\u00e1rio redesenhar algum elemento na p\u00e1gina, o React calcula as diferen\u00e7as (diff) entre o virtual DOM e a p\u00e1gina, modificando apenas o necess\u00e1rio. \u00c9 muito mais r\u00e1pido de manipular esse pseudo-DOM do que o DOM.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Uso_do_JSX\"><\/span>Uso do JSX<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>JSX \u00e9 uma extens\u00e3o do javascript que permite escrever componentes com sintaxe XML dentro de arquivos JS. <strong>Ele transforma XML em JS<\/strong>. Voc\u00ea n\u00e3o precisa usar JSX para trabalhar com React, mas \u00e9 uma boa op\u00e7\u00e3o para dar agilidade ao seu projeto. <\/p>\n\n\n\n<p>Veja um exemplo de uso:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var x = &lt;div&gt;&lt;strong&gt;abcdef&lt;\/strong&gt;&lt;\/div&gt;<\/code><\/pre>\n\n\n\n<p>Essa mesma express\u00e3o \u00e9 transformada no seguinte trecho em JS:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var x = React.createElement(\n\"div\", null, React.createElement(\n\"strong\", null, \"abcdef\" \n)\n);<\/code><\/pre>\n\n\n\n<p>Essa transforma\u00e7\u00e3o \u00e9 transparente \u2013 as pr\u00f3prias ferramentas de build cuidam disso. No entanto, \u00e9 poss\u00edvel incluir uma vers\u00e3o do compilador JSX escrita em javascript numa p\u00e1gina da web, e trabalhar diretamente com JSX.<br><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Como_usar_o_React\"><\/span>Como usar o React?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>A maneira mais f\u00e1cil de come\u00e7ar com React \u00e9 incluindo a biblioteca em uma tag de&nbsp;<code>&lt;script&gt;<\/code> no HEAD da sua p\u00e1gina HTML. Veja um exemplo:<br><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;!DOCTYPE html&gt;\n \n&lt;html&gt;\n \n&lt;head&gt;\n \n&lt;script src=\"\/\/cdnjs.cloudflare.com\/ajax\/libs\/react\/0.14.6\/react.js\"&gt;&lt;\/script&gt;\n \n&lt;script src=\"\/\/cdnjs.cloudflare.com\/ajax\/libs\/react\/0.14.6\/react-dom.js\"&gt;&lt;\/script&gt;\n \n&lt;\/head&gt;\n \n&lt;body&gt;\n \n&lt;div id=\"meuapp\"&gt;&lt;\/div&gt;\n \n&lt;script&gt;\n \nvar MeuApp = React.createClass({\n \nrender: function() {\n \nreturn &lt;div&gt;To usando react&lt;\/div&gt;;\n \n}\n \n});\n \nReactDOM.render(\n \n&lt;MeuApp \/&gt;,\n \ndocument.getElementById('meuapp')\n \n);\n \n&lt;\/script&gt;\n \n&lt;\/body&gt;\n \n&lt;\/html&gt;<\/code><\/pre>\n","protected":false},"author":9,"featured_media":0,"menu_order":12,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","article-category":[181],"article-tag":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/king.host\/wiki\/wp-json\/wp\/v2\/article\/2493"}],"collection":[{"href":"https:\/\/king.host\/wiki\/wp-json\/wp\/v2\/article"}],"about":[{"href":"https:\/\/king.host\/wiki\/wp-json\/wp\/v2\/types\/article"}],"author":[{"embeddable":true,"href":"https:\/\/king.host\/wiki\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/king.host\/wiki\/wp-json\/wp\/v2\/comments?post=2493"}],"version-history":[{"count":2,"href":"https:\/\/king.host\/wiki\/wp-json\/wp\/v2\/article\/2493\/revisions"}],"predecessor-version":[{"id":7410,"href":"https:\/\/king.host\/wiki\/wp-json\/wp\/v2\/article\/2493\/revisions\/7410"}],"wp:attachment":[{"href":"https:\/\/king.host\/wiki\/wp-json\/wp\/v2\/media?parent=2493"}],"wp:term":[{"taxonomy":"article-category","embeddable":true,"href":"https:\/\/king.host\/wiki\/wp-json\/wp\/v2\/article-category?post=2493"},{"taxonomy":"article-tag","embeddable":true,"href":"https:\/\/king.host\/wiki\/wp-json\/wp\/v2\/article-tag?post=2493"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}