{"id":50992,"date":"2022-07-05T06:53:42","date_gmt":"2022-07-05T09:53:42","guid":{"rendered":"https:\/\/kinsta.com\/pt\/?p=50992&#038;post_type=knowledgebase&#038;preview_id=50992"},"modified":"2025-10-01T17:04:05","modified_gmt":"2025-10-01T20:04:05","slug":"o-que-e-react-js","status":"publish","type":"post","link":"https:\/\/kinsta.com\/pt\/blog\/o-que-e-react-js\/","title":{"rendered":"O que \u00e9 React.js? Uma Introdu\u00e7\u00e3o da Popular Biblioteca JavaScript"},"content":{"rendered":"<p>A ind\u00fastria de desenvolvimento web tem visto um crescimento constante nos \u00faltimos anos; e \u00e0 medida que este crescimento continua, novas tecnologias est\u00e3o constantemente emergindo para ajudar os desenvolvedores na cria\u00e7\u00e3o de sites e aplicativos web de f\u00e1cil utiliza\u00e7\u00e3o.<\/p>\n<p>Ao longo dos anos, temos visto <a href=\"https:\/\/kinsta.com\/pt\/blog\/melhor-linguagem-de-programacao\/\">linguagens de programa\u00e7\u00e3o<\/a> web produzindo recursos adicionais, mais linguagens de programa\u00e7\u00e3o sendo usadas na cria\u00e7\u00e3o de tecnologias web, e at\u00e9 mesmo frameworks e bibliotecas sendo constru\u00eddas com base nas estruturas das tecnologias existentes.<\/p>\n<p>Neste tutorial, vamos falar sobre React \u2014 a <a href=\"https:\/\/insights.stackoverflow.com\/survey\/2021#section-most-popular-technologies-web-frameworks\" target=\"_blank\" rel=\"noopener noreferrer\">biblioteca JavaScript baseada em componentes mais populares<\/a> usada para a cria\u00e7\u00e3o de interfaces de usu\u00e1rio. Embora este tutorial seja completamente amig\u00e1vel para iniciantes, tamb\u00e9m pode servir como um guia de refer\u00eancia para desenvolvedores experientes em React.<\/p>\n\n<p>Vamos falar sobre as funcionalidades do React, os pr\u00f3s e contras, porque voc\u00ea deve us\u00e1-lo, e como instalar e usar o React. Tamb\u00e9m veremos algumas das principais caracter\u00edsticas<span style=\"font-size: 1rem\">\u00a0do React usando exemplos pr\u00e1ticos de c\u00f3digo.<\/span><\/p>\n<p>No final deste tutorial, voc\u00ea saber\u00e1 o que \u00e9 React, como ele funciona e como us\u00e1-lo na constru\u00e7\u00e3o de projetos incr\u00edveis.<br \/>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc><\/p>\n<h2>O que \u00e9 React?<\/h2>\n<p>React.js, frequentemente chamado apenas de React, \u00e9 uma <a href=\"https:\/\/kinsta.com\/pt\/blog\/bibliotecas-javascript\/\" target=\"_blank\" rel=\"noopener noreferrer\">biblioteca JavaScript<\/a> usada para construir interfaces de usu\u00e1rio. Cada aplicativo web React \u00e9 composto de componentes reutiliz\u00e1veis que comp\u00f5em partes da interface do usu\u00e1rio \u2014 podemos ter um componente separado para nossa barra de navega\u00e7\u00e3o, um para o rodap\u00e9, outro para o conte\u00fado principal, e assim por diante. Voc\u00ea entender\u00e1 isso melhor mais a frente.<\/p>\n<p>O uso de componentes reutiliz\u00e1veis facilita o desenvolvimento, uma vez que n\u00e3o \u00e9 preciso repetir c\u00f3digo recorrente. Basta criar a l\u00f3gica do componente e import\u00e1-lo em qualquer parte do c\u00f3digo em que for necess\u00e1rio.<\/p>\n<p>React tamb\u00e9m \u00e9 um aplicativo de uma \u00fanica p\u00e1gina. Assim, ao inv\u00e9s de enviar uma solicita\u00e7\u00e3o ao servidor toda vez que uma nova p\u00e1gina \u00e9 renderizada, o conte\u00fado da p\u00e1gina \u00e9 carregado diretamente dos componentes do React. Isso leva a uma renderiza\u00e7\u00e3o mais r\u00e1pida sem recarregamentos de p\u00e1gina.<\/p>\n<p>Geralmente, a sintaxe usada para construir aplicativos React \u00e9 chamado de JSX (JavaScript XML), que \u00e9 uma extens\u00e3o de sintaxe para <a href=\"https:\/\/kinsta.com\/pt\/blog\/next-js\/\">JavaScript<\/a>. Isso nos permite combinar tanto a l\u00f3gica JavaScript quanto a l\u00f3gica da interface do usu\u00e1rio de uma maneira \u00fanica. Com o JSX, eliminamos a necessidade de interagir com o DOM usando m\u00e9todos como <code>document.getElementById<\/code>, <code>querySelector<\/code>, e outros m\u00e9todos de manipula\u00e7\u00e3o de DOM.<\/p>\n<p>Embora o uso do JSX n\u00e3o seja obrigat\u00f3rio, ele torna o desenvolvimento de aplicativos React mais f\u00e1cil.<\/p>\n<p>Aqui est\u00e1 um exemplo de como podemos usar o JSX no React:<\/p>\n<pre><code class=\"language-js\">function App() {\n    const greetings = \"Hello World\";\n        return (\n            &lt;div className=\"App\"&gt;\n            &lt;h1&gt; {greetings} &lt;\/h1&gt;\n            &lt;\/div&gt;\n        );\n    }\n}<\/code><\/pre>\n<p>No c\u00f3digo acima, usamos um componente funcional React para renderizar uma parte de texto para o navegador. O nome do componente \u00e9 <code>App<\/code>. Criamos uma vari\u00e1vel antes da fun\u00e7\u00e3o <code>render()<\/code>.<\/p>\n<p>Em seguida, passamos essa vari\u00e1vel para a marca\u00e7\u00e3o usando colchetes. Isso n\u00e3o \u00e9 HTML, mas a sintaxe para escrever c\u00f3digo usando JSX.<\/p>\n<p>Na pr\u00f3xima se\u00e7\u00e3o, discutiremos algumas das raz\u00f5es pelas quais voc\u00ea deveria usar o React.<\/p>\n<h2>Por que React?<\/h2>\n<p>Muitos <a href=\"https:\/\/kinsta.com\/pt\/blog\/salario-desenvolvedor-web\/\" rel=\"noopener\">desenvolvedores<\/a> e organiza\u00e7\u00f5es escolheram React em vez de outras bibliotecas\/frameworks; aqui est\u00e3o os motivos:<\/p>\n<ul>\n<li><strong>F\u00e1cil de aprender:<\/strong> React \u00e9 f\u00e1cil de aprender e entender, desde que voc\u00ea tenha um bom entendimento dos pr\u00e9-requisitos. React tem uma s\u00f3lida documenta\u00e7\u00e3o e muitos recursos gratuitos criados por outros desenvolvedores on-line atrav\u00e9s da comunidade ativa do React.<\/li>\n<li><strong>Componentes reutiliz\u00e1veis:<\/strong> Cada componente do React tem sua pr\u00f3pria l\u00f3gica que pode ser reutilizada em qualquer lugar do aplicativo. Isso reduz a necessidade de reescrever a mesma parte de c\u00f3digo v\u00e1rias vezes.<\/li>\n<\/ul>\n<ul>\n<li><strong>Oportunidades de emprego:<\/strong> Uma porcentagem maior de <a href=\"https:\/\/kinsta.com\/pt\/blog\/desenvolvedor-frontend\/\" rel=\"noopener\">oportunidades de desenvolvimento web<\/a> no momento tem o React como uma das habilidades necess\u00e1rias. Assim, ter um entendimento de como o React funciona e ser capaz de trabalhar com ele aumenta suas chances de conseguir um emprego.<\/li>\n<\/ul>\n<ul>\n<li><strong>Melhoria do desempenho:<\/strong> Com o DOM virtual do React, o processo de renderiza\u00e7\u00e3o de p\u00e1ginas pode ser feito mais rapidamente. Ao utilizar uma biblioteca de roteamento como o React Router, \u00e9 poss\u00edvel renderizar diferentes p\u00e1ginas sem a necessidade de recarregar a p\u00e1gina inteira.<\/li>\n<\/ul>\n<ul>\n<li><strong>Amplamente extens\u00edvel:<\/strong> React \u00e9 uma biblioteca que s\u00f3 renderiza a interface de usu\u00e1rio de nosso aplicativo. Cabe ao desenvolvedor escolher <a href=\"https:\/\/kinsta.com\/pt\/blog\/ferramentas-de-desenvolvimento-web\/\" rel=\"noopener\">quais ferramentas trabalhar<\/a>, como bibliotecas para renderizar p\u00e1ginas diferentes, bibliotecas de design, e assim por diante.<\/li>\n<\/ul>\n<h2>Quem usa React?<\/h2>\n<p>O React tem sido usado por muitos engenheiros de frontend tanto em startups quanto em empresas estabelecidas como Facebook, Netflix, Instagram, Yahoo, Uber, The New York Times e outras.<\/p>\n<p>Embora nem todas as empresas listadas acima tenham constru\u00eddo todo o seu produto usando React, algumas de suas p\u00e1ginas foram constru\u00eddas usando React. Isso se deve ao alto desempenho, facilidade de uso e escalabilidade do React.<\/p>\n<h2>Casos de uso do React<\/h2>\n<p>React \u00e9 geralmente usado para construir a interface do usu\u00e1rio (frontend) dos aplicativos web. Ele possui renderiza\u00e7\u00e3o r\u00e1pida de p\u00e1ginas e aumento de desempenho. O React pode ser usado para construir qualquer produto que funcione na web.<\/p>\n<p>Aqui est\u00e3o apenas algumas das coisas que o React \u00e9 comumente usado para construir:<\/p>\n<ul>\n<li>Aplicativos de reprodu\u00e7\u00e3o de m\u00fasica<\/li>\n<li>Aplicativos de redes sociais<\/li>\n<li>Aplicativos de chat em tempo real<\/li>\n<li>Aplicativos web <a href=\"https:\/\/kinsta.com\/pt\/blog\/o-que-e-um-desenvolvedor-full-stack\/\">full-stack<\/a><\/li>\n<li>Aplicativos de <a href=\"https:\/\/kinsta.com\/pt\/blog\/hospedagem-ecommerce\/\">eCommerce<\/a><\/li>\n<li>Aplicativos meteorol\u00f3gicos<\/li>\n<li>Aplicativos de lista de afazeres<\/li>\n<\/ul>\n<h2>Funcionalidades do React<\/h2>\n<p>O React tem uma infinidade de recursos incr\u00edveis que continuam a torn\u00e1-lo uma op\u00e7\u00e3o popular para desenvolvedores.<\/p>\n<p>Aqui est\u00e3o algumas das principais funcionalidades do React:<\/p>\n<ul>\n<li><strong>JSX:<\/strong> Esta \u00e9 uma extens\u00e3o de sintaxe JavaScript que estende as funcionalidades do ES6 (ECMAScript 2015). Isso nos permite combinar a l\u00f3gica JavaScript e a marca\u00e7\u00e3o em um componente.<\/li>\n<\/ul>\n<ul>\n<li><strong>DOM Virtual:<\/strong> Esta \u00e9 uma c\u00f3pia do objeto DOM que primeiro atualiza e re-renderiza nossas p\u00e1ginas quando s\u00e3o feitas altera\u00e7\u00f5es; ele ent\u00e3o compara o estado atual com o DOM original para mant\u00ea-lo em sincronia com as mudan\u00e7as. Isso leva a uma <a href=\"https:\/\/kinsta.com\/pt\/aprenda\/velocidade-de-sites\/\" rel=\"noopener\">renderiza\u00e7\u00e3o mais r\u00e1pida da p\u00e1gina<\/a>.<\/li>\n<\/ul>\n<ul>\n<li><strong>Componentes:<\/strong> Aplicativos React s\u00e3o feitos de diferentes componentes reutiliz\u00e1veis que possuem sua pr\u00f3pria l\u00f3gica e interface de usu\u00e1rio. Isso o torna eficiente para escalar aplicativos e manter o desempenho alto, pois o c\u00f3digo n\u00e3o \u00e9 duplicado com tanta frequ\u00eancia como em outros frameworks.<\/li>\n<\/ul>\n<h2>Pr\u00f3s e contras do React<\/h2>\n<p>React pode ser uma ferramenta popular para construir nossa interface do usu\u00e1rio (UI), mas ainda existem raz\u00f5es pelas quais alguns desenvolvedores ou iniciantes optam por n\u00e3o us\u00e1-la.<\/p>\n<p>Nesta se\u00e7\u00e3o, falaremos sobre os pr\u00f3s e contras do React.<\/p>\n<p>Aqui est\u00e3o os pr\u00f3s do uso do React:<\/p>\n<ol>\n<li><a href=\"https:\/\/kinsta.com\/pt\/blog\/vue-vs-react\/\">React<\/a> \u00e9 f\u00e1cil de aprender e entender.<\/li>\n<li>React tem uma comunidade muito ativa onde voc\u00ea pode contribuir e obter ajuda quando necess\u00e1rio.<\/li>\n<li>H\u00e1 muitas oportunidades de trabalho para os desenvolvedores do React.<\/li>\n<li>React oferece um aumento de desempenho do aplicativo.<\/li>\n<\/ol>\n<p>Aqui est\u00e3o alguns dos contras de usar o React:<\/p>\n<ol>\n<li>Iniciantes que n\u00e3o t\u00eam uma compreens\u00e3o s\u00f3lida de JavaScript (especialmente ES6) podem achar dif\u00edcil entender o React.<\/li>\n<li>O React n\u00e3o inclui algumas funcionalidades comuns, como gerenciamento de estado \u00fanico e roteamento; voc\u00ea precisaria instalar e aprender a usar bibliotecas externas para elas.<\/li>\n<\/ol>\n<h2>Come\u00e7ando com o React<\/h2>\n<p>Nesta se\u00e7\u00e3o, primeiro falaremos sobre os pr\u00e9-requisitos para usar o React e depois entraremos em detalhes sobre a configura\u00e7\u00e3o de um aplicativo React, criando componentes, lidando com eventos e trabalhando com estados, <a href=\"https:\/\/kinsta.com\/pt\/blog\/usecallback-react\/\">hooks<\/a> e props no React.<\/p>\n<h3>Pr\u00e9-requisitos para usar o React<\/h3>\n<p>Antes de usar o React, voc\u00ea deve ter uma boa compreens\u00e3o e experi\u00eancia do <a href=\"https:\/\/kinsta.com\/pt\/blog\/linguagens-de-script\/\" rel=\"noopener\">JavaScript<\/a>. Aqui est\u00e3o alguns dos t\u00f3picos de JavaScript que recomendamos que voc\u00ea aprofunde antes de usar o React:<\/p>\n<ul>\n<li>Fun\u00e7\u00f5es de setas<\/li>\n<li>Operador Rest<\/li>\n<li>Operador Spread<\/li>\n<li>M\u00f3dulos<\/li>\n<li>Desestrutura\u00e7\u00e3o<\/li>\n<li>M\u00e9todos de Array<\/li>\n<li>Templates literais<\/li>\n<li>Promises<\/li>\n<li>Palavras-chave <code>let<\/code> e <code>const<\/code><\/li>\n<\/ul>\n<p>A maioria desses t\u00f3picos acima faz parte do ES6. Voc\u00ea tamb\u00e9m deve ter experi\u00eancia <a href=\"https:\/\/kinsta.com\/pt\/blog\/aprender-html\/\" target=\"_blank\" rel=\"noopener noreferrer\">em HTML<\/a>, j\u00e1 que a marca\u00e7\u00e3o faz parte da sintaxe JSX.<\/p>\n<h3>Como instalar o React<\/h3>\n<p>Antes de instalar o React, certifique-se de que voc\u00ea tem o <a href=\"https:\/\/kinsta.com\/pt\/blog\/como-instalar-o-node-js\/\" rel=\"noopener\">Node.js instalado em seu computador<\/a>.<\/p>\n<p>Uma vez que voc\u00ea o tenha instalado com sucesso, execute o comando abaixo em seu terminal:<\/p>\n<pre><code class=\"language-bash\">node -v<\/code><\/pre>\n<p>Se tudo der certo, o comando acima deve lhe dizer qual vers\u00e3o do Node.js est\u00e1 atualmente instalada no seu computador.<\/p>\n<p>A seguir, executaremos outro comando para come\u00e7ar a instalar o React.<\/p>\n<p>Primeiro, crie uma pasta ou navegue at\u00e9 o local onde voc\u00ea deseja que o aplicativo React seja instalado, depois execute o comando abaixo em seu terminal:<\/p>\n<pre><code class=\"language-bash\">npx create-react-app react-kit<\/code><\/pre>\n<p>O comando acima instalar\u00e1 o React em uma pasta chamada <strong>react-kit<\/strong>.<\/p>\n<p>Uma vez conclu\u00edda a instala\u00e7\u00e3o, abra sua pasta React recentemente instalada no <a href=\"https:\/\/kinsta.com\/pt\/blog\/melhores-editores-texto\/\" rel=\"noopener\">editor de c\u00f3digo<\/a> da sua escolha. Estaremos usando o Visual Studio Code neste tutorial. O Visual Studio Code vem com um terminal integrado. Caso voc\u00ea use um terminal diferente como Git Bash ou CMD, navegue para o seu diret\u00f3rio de aplicativos React e execute o comando abaixo:<\/p>\n<pre><code class=\"language-bash\">npm run start<\/code><\/pre>\n<p>Esse comando inicia o seu servidor de desenvolvimento. Ap\u00f3s algum tempo, voc\u00ea dever\u00e1 ter esta p\u00e1gina abaixo sendo exibida em <strong>localhost:3000<\/strong> no seu navegador:<\/p>\n<figure id=\"attachment_124283\" aria-describedby=\"caption-attachment-124283\" style=\"width: 1354px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-124283 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/05\/react-npm-start.png\" alt=\"Servidor de desenvolvimento React ap\u00f3s instala\u00e7\u00e3o.\" width=\"1354\" height=\"614\"><figcaption id=\"caption-attachment-124283\" class=\"wp-caption-text\">Servidor de desenvolvimento React ap\u00f3s instala\u00e7\u00e3o.<\/figcaption><\/figure>\n<p>Se voc\u00ea seguiu at\u00e9 este aqui, ent\u00e3o voc\u00ea instalou com sucesso seu primeiro aplicativo React. Parab\u00e9ns!<\/p>\n<p>Quando voc\u00ea olhar para a estrutura da sua pasta, voc\u00ea ver\u00e1 uma pasta chamada <strong>public<\/strong>. Esta pasta tem um arquivo<strong> index.html<\/strong> onde nosso c\u00f3digo ser\u00e1 injetado e servido para o navegador.<\/p>\n<p>A pasta <strong>src<\/strong> \u00e9 onde toda \u00e0 nossa l\u00f3gica, estilo e marca\u00e7\u00e3o v\u00e3o ficar; essa \u00e9 \u00e0 nossa pasta de desenvolvimento, onde o arquivo <strong>App.js<\/strong> atua como o componente raiz. O c\u00f3digo deste arquivo \u00e9 o que temos na imagem acima.<\/p>\n<p>Abra o arquivo <strong>App.js<\/strong> e fa\u00e7a algumas altera\u00e7\u00f5es no arquivo e, em seguida, salve para ver as altera\u00e7\u00f5es refletidas automaticamente no navegador.<\/p>\n<p>Tudo pronto? Agora vamos escrever algum c\u00f3digo!<\/p>\n<h3>Componentes React<\/h3>\n<p><span style=\"font-size: 1.125rem\">Existem dois tipos principais de componentes no React: componentes de classe e componentes funcionais. A documenta\u00e7\u00e3o do React est\u00e1 atualmente sendo reescrita usando Hooks, que \u00e9 um recurso encontrado em componentes funcionais. Tamb\u00e9m usaremos componentes funcionais neste tutorial, pois eles se tornaram os componentes mais amplamente usados para aplicativos React.<\/span><\/p>\n<p>Geralmente, os componentes retornam algum <a href=\"https:\/\/kinsta.com\/pt\/blog\/xml-vs-html\/\">c\u00f3digo HTML<\/a> com uma mistura de valores din\u00e2micos criados usando JavaScript. Os componentes s\u00e3o criados como fun\u00e7\u00f5es em JavaScript.<\/p>\n<h3>Criando um componente da classe React<\/h3>\n<p>Veremos um exemplo de um componente de classe em React.<\/p>\n<p>Cada componente de classe deve incluir a declara\u00e7\u00e3o <code>React.Component<\/code> e <code>render()  subclass.<\/code><\/p>\n<pre><code class=\"language-js\">class Student extends React.Component {\n    constructor() {\n        super();\n        this.state = {language: \"JavaScript\"};\n    }\n    render() {\n        return &lt;p&gt;I am learning {this.state.language} &lt;\/p&gt;;\n    }\n}<\/code><\/pre>\n<p>No componente acima, criamos uma vari\u00e1vel de estado chamada <code>language<\/code> com um valor de string de \u201cJavaScript\u201d. Usaremos esta vari\u00e1vel em nosso markup. Este exemplo mostra como podemos misturar JavaScript e HTML sem fazer refer\u00eancia a nenhum m\u00e9todo DOM.<\/p>\n<p>Quando isso for renderizado para o navegador, veremos \u201cEstou aprendendo JavaScript\u201d renderizado na p\u00e1gina.<\/p>\n<h3>Criando um componente funcional React<\/h3>\n<p>Nesta se\u00e7\u00e3o, recriaremos o exemplo da \u00faltima se\u00e7\u00e3o usando um componente funcional.<\/p>\n<p>Adicione esta fun\u00e7\u00e3o ao seu arquivo:<\/p>\n<pre><code class=\"language-js\">function Student() {\n    const language = \"JavaScript\";\n    return (\n        &lt;div&gt;\n        &lt;p&gt;I am learning { language } &lt;\/p&gt;\n        &lt;\/div&gt;\n    );\n}<\/code><\/pre>\n<p>O nome do nosso componente \u00e9 o mesmo: <code>Student<\/code>. Sempre comece o nome de seus componentes com uma letra mai\u00fascula. Essa vari\u00e1vel tamb\u00e9m foi passada para a marca\u00e7\u00e3o como fizemos na \u00faltima se\u00e7\u00e3o, sem manipular o DOM usando m\u00e9todos DOM do JavaScript puro.<\/p>\n<p>Esse componente tamb\u00e9m possui uma vari\u00e1vel <code>Student<\/code> que foi renderizada, mas\u00a0<span style=\"font-size: 1.125rem\">\u00e0 medida que avan\u00e7amos no tutorial, usaremos um Hook chamado<\/span><span style=\"font-size: 1.125rem\">\u00a0<\/span><code>useState<\/code><span style=\"font-size: 1.125rem\"> Hook para criar nossas vari\u00e1veis de estado.<\/span><\/p>\n<h3>Trabalhando com eventos no React<\/h3>\n<p>Os eventos usados em React s\u00e3o similares aos que fazemos em <a href=\"https:\/\/kinsta.com\/pt\/blog\/aprender-html\/\">HTML<\/a>. A \u00fanica diferen\u00e7a aqui \u00e9 que os eventos React s\u00e3o escritos em sintaxe camelCase. Ent\u00e3o \u201conclick\u201d seria \u201conClick\u201d no React, \u201conchange\u201d seria \u201conChange\u201d, e assim por diante.<\/p>\n<p>Ao passar um evento como um atributo em uma tag HTML, usamos colchetes: <code> onClick={changeName}<\/code> ao inv\u00e9s de aspas <code> onClick=\u201dchangeName\u201d<\/code><\/p>\n<p>Aqui est\u00e1 um exemplo (no arquivo <strong>App.js<\/strong>):<\/p>\n<pre><code class=\"language-js\">import { useState } from \"react\";\nfunction App() {\n    const [name, setName] = useState(\"John\");\n    const changeName = () =&gt; {\n        setName(\"James\");\n    };\n    return (\n        &lt;div className=\u201dApp\u201d&gt;\n        &lt;p&gt;His name is {name}&lt;\/p&gt;\n        &lt;button onClick={changeName}&gt; Click me &lt;\/button&gt;\n        &lt;\/div&gt;\n    );\n}\nexport default App;<\/code><\/pre>\n<p>No c\u00f3digo acima, criamos uma fun\u00e7\u00e3o que alerta uma mensagem no navegador. Tamb\u00e9m criamos um bot\u00e3o que chama esta fun\u00e7\u00e3o quando clicada. O manipulador de eventos usado aqui \u00e9 o manipulador de eventos <code>onClick<\/code>.<\/p>\n<p>Voc\u00ea notaria que o nome da fun\u00e7\u00e3o estava envolto em colchetes e n\u00e3o em aspas. Isso \u00e9 como passar em valores din\u00e2micos como nomes de vari\u00e1veis e fun\u00e7\u00f5es para a marca\u00e7\u00e3o quando se usa JSX.<\/p>\n<p>Al\u00e9m disso, ao inv\u00e9s de usar \u201cclass\u201d como far\u00edamos quando usamos HTML, estamos usando \u201cclassName\u201d. Isso porque &#8220;class&#8221; \u00e9 uma palavra reservada em JavaScript.<\/p>\n<p>Exportamos nosso componente na \u00faltima linha. Isso nos permite import\u00e1-lo para outros componentes.<\/p>\n<h3>Trabalhando com estados no React<\/h3>\n<p>Ao gerenciar o estado de nosso aplicativo em React, usamos um Hook chamado <code>useState<\/code> Hook. Os hooks nos permitem acessar recursos adicionais do React sem escrever uma classe.<\/p>\n<p>Com Hooks, podemos gerenciar o estado de nossos componentes e realizar certos efeitos quando nossas vari\u00e1veis de estado s\u00e3o renderizadas pela primeira vez ou alteradas.<\/p>\n<p>Sem o <code>useState<\/code> Hook em um componente funcional, quaisquer altera\u00e7\u00f5es feitas em nossas vari\u00e1veis de estado n\u00e3o refletir\u00e3o no DOM, portanto o estado permanecer\u00e1 inalterado.<\/p>\n<p>Vamos dar uma olhada em um exemplo:<\/p>\n<pre><code class=\"language-js\">import { useState } from \"react\";\nfunction App() {\n    const [name, setName] = useState(\"John\");\n    const changeName = () =&gt; {\n        setName(\"James\");\n    };\n    return (\n        &lt;div className=\u201dApp\u201d&gt;\n        &lt;p&gt;His name is {name}&lt;\/p&gt;\n        &lt;button onClick={changeName}&gt; Click me &lt;\/button&gt;\n        &lt;\/div&gt;\n    );\n}\nexport default App;<\/code><\/pre>\n<p>Agora, analisaremos o que acabamos de fazer.<\/p>\n<p>Primeiro importamos o Hook <code>useState<\/code> do React. Ent\u00e3o criamos uma vari\u00e1vel de estado chamado <strong>name<\/strong> e uma fun\u00e7\u00e3o \u2014 <strong>setName<\/strong> \u2014 que ser\u00e1 utilizada para atualizar o valor da vari\u00e1vel <strong>name<\/strong>. O valor inicial da vari\u00e1vel name \u00e9 armazenado no <code>useState<\/code> Hook como \u201cJohn\u201d.<\/p>\n<p>A seguir, criamos uma fun\u00e7\u00e3o chamada <strong>changeName<\/strong>, que usa a fun\u00e7\u00e3o <strong>setName<\/strong> para atualizar o valor da vari\u00e1vel <strong>name<\/strong>.<\/p>\n<p>Em nossa marca\u00e7\u00e3o, uma vez que o bot\u00e3o \u00e9 clicado, \u201cJohn\u201d \u00e9 mudado para \u201cJames\u201d.<\/p>\n<p>Na pr\u00f3xima se\u00e7\u00e3o, veremos como usar outro Hook em React.<\/p>\n<h3>Trabalhando com Hooks no React<\/h3>\n<p>Na \u00faltima se\u00e7\u00e3o, vimos como gerenciar o estado do nosso aplicativo usando o hook <code>useStatet<\/code>. Nesta se\u00e7\u00e3o, veremos como usar o hook <code>useEffect<\/code>.<\/p>\n<p>O <code>useEffect<\/code> hook realiza um efeito cada vez que uma altera\u00e7\u00e3o ocorre em um estado. Por padr\u00e3o, este hook \u00e9 executado na primeira renderiza\u00e7\u00e3o e sempre que o estado \u00e9 atualizado, mas podemos configurar e vincular um efeito a uma vari\u00e1vel de estado respectiva.<\/p>\n<p>Vejamos alguns exemplos:<\/p>\n<pre><code class=\"language-js\">import { useState, useEffect } from \"react\";\nfunction App() {\n    const [day, setDay] = useState(1);\n    useEffect(() =&gt; {\n        console.log(`You are in day ${day} of the year`);\n    });\n    return (\n        &lt;div&gt;\n        &lt;button onClick={() =&gt; setDay(day + 1)}&gt;Click to increase day&lt;\/button&gt;\n        &lt;\/div&gt;\n    );\n}\nexport default App;<\/code><\/pre>\n<p>A primeira coisa que fizemos aqui foi importar o hook <code>useEffect<\/code>.<\/p>\n<p>Toda vez que clicamos no bot\u00e3o, a vari\u00e1vel<strong> name <\/strong>\u00e9 aumentada em um, esta altera\u00e7\u00e3o no valor de <strong>name<\/strong> ent\u00e3o faz com que o hook <code>useEffect<\/code>\u00a0registre uma mensagem no console \u2014 isso acontece toda vez que a vari\u00e1vel do <strong>name<\/strong>\u00a0muda.<\/p>\n<div class=\"group w-full text-gray-800 dark:text-gray-100 border-b border-black\/10 dark:border-gray-900\/50 bg-gray-50 dark:bg-[#444654]\">\n<div class=\"text-base gap-4 md:gap-6 md:max-w-2xl lg:max-w-xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0 m-auto\">\n<div class=\"relative flex w-[calc(100%-50px)] flex-col gap-1 md:gap-3 lg:w-[calc(100%-115px)]\">\n<div class=\"flex flex-grow flex-col gap-3\">\n<div class=\"min-h-[20px] flex flex-col items-start gap-4 whitespace-pre-wrap\">\n<div class=\"markdown prose w-full break-words dark:prose-invert light\">\n<p>Na pr\u00f3xima se\u00e7\u00e3o, falaremos sobre Props e o fluxo de dados entre componentes.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"flex justify-between lg:block\">\n<div class=\"text-gray-400 flex self-end lg:self-center justify-center mt-2 gap-2 md:gap-3 lg:gap-1 lg:absolute lg:top-0 lg:translate-x-full lg:right-0 lg:mt-0 lg:pl-2 visible\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<h3>Trabalhando com Props no React<\/h3>\n<p>Props permitem que passemos dados de um componente para outro. Isso torna o fluxo de dados em nosso aplicativo din\u00e2mico e sustent\u00e1vel. Props \u00e9 uma abrevia\u00e7\u00e3o de propriedades.<\/p>\n<p>Vejamos um exemplo de como podemos usar os props.<\/p>\n<p>Esse \u00e9 o aspecto do nosso arquivo <strong>App.js<\/strong>:<\/p>\n<pre><code class=\"language-js\">function App() {\n    return (\n        &lt;div&gt;\n        &lt;\/div&gt;\n    );\n}\nexport default App;<\/code><\/pre>\n<p>Criamos outro componente chamado <strong>Bio.js<\/strong> que tem essa apar\u00eancia:<\/p>\n<pre><code class=\"language-js\">function Bio() {\n    return (\n        &lt;div&gt;\n        &lt;p&gt;My name is John&lt;\/p&gt;\n        &lt;p&gt;I am a JavaScript developer&lt;\/p&gt;\n        &lt;\/div&gt;\n    );\n}\nexport default Bio;<\/code><\/pre>\n<p>A seguir, importaremos o componente <strong>Bio<\/strong> para o nosso componente <strong>App<\/strong> dessa forma:<\/p>\n<pre><code class=\"language-js\">import Bio from \".\/Bio\";\nfunction App() {\n    return (\n        &lt;div className=\"App\"&gt;\n        &lt;Bio\/&gt;\n        &lt;\/div&gt;\n    );\n}\nexport default App;<\/code><\/pre>\n<p>A primeira linha \u00e9 onde importamos o componente <strong>Bio<\/strong>. Em seguida, colocamos o componente entre as tags <code>div<\/code> em nosso componente <strong>App<\/strong>.\u00a0<span style=\"font-size: 1.125rem\">Quando voc\u00ea visualiza isso no navegador, voc\u00ea ver\u00e1 o c\u00f3digo que criamos no componente <strong>Bio<\/strong> sendo renderizado.<\/span><\/p>\n<div class=\"group w-full text-gray-800 dark:text-gray-100 border-b border-black\/10 dark:border-gray-900\/50 bg-gray-50 dark:bg-[#444654]\">\n<div class=\"text-base gap-4 md:gap-6 md:max-w-2xl lg:max-w-xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0 m-auto\">\n<div class=\"relative flex w-[calc(100%-50px)] flex-col gap-1 md:gap-3 lg:w-[calc(100%-115px)]\">\n<div class=\"flex flex-grow flex-col gap-3\">\n<div class=\"min-h-[20px] flex flex-col items-start gap-4 whitespace-pre-wrap\">\n<div class=\"markdown prose w-full break-words dark:prose-invert light\">\n<p>Agora voc\u00ea entende como o c\u00f3digo pode ser reutiliz\u00e1vel no React. Mas esse c\u00f3digo \u00e9 est\u00e1tico; ser\u00e1 o mesmo em qualquer componente em que for usado. Isso n\u00e3o ser\u00e1 eficiente nos casos em que gostar\u00edamos de usar o mesmo componente, mas com informa\u00e7\u00f5es diferentes.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"flex justify-between lg:block\">\n<div class=\"text-gray-400 flex self-end lg:self-center justify-center mt-2 gap-2 md:gap-3 lg:gap-1 lg:absolute lg:top-0 lg:translate-x-full lg:right-0 lg:mt-0 lg:pl-2 visible\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>Corrigiremos isso usando os adere\u00e7os.<\/p>\n<p>No componente <strong>Bio.js<\/strong>, fa\u00e7a isso:<\/p>\n<pre><code class=\"language-js\">function Bio({name, language}) {\n    return (\n        &lt;div&gt;\n        &lt;p&gt;My name is { name }&lt;\/p&gt;\n        &lt;p&gt;I am a { language } developer&lt;\/p&gt;\n        &lt;\/div&gt;\n    );\n\n}\nexport default Bio;<\/code><\/pre>\n<p>Primeiro desestruturamos e passamos em <code>name<\/code> e <code>language<\/code> como par\u00e2metros. Estes par\u00e2metros foram ent\u00e3o usados dinamicamente em nossa marca\u00e7\u00e3o.<\/p>\n<p>Exportamos o componente na \u00faltima linha de c\u00f3digo: <code> export default Bio;<\/code> para que possamos import\u00e1-lo para qualquer outro componente que necessita da sua l\u00f3gica.<\/p>\n<p>No momento, n\u00e3o podemos ver nenhum valor\u00a0<span style=\"font-size: 1.125rem\">sendo exibidos <\/span><span style=\"font-size: 1.125rem\">para eles. Faremos isso no componente <\/span><strong style=\"font-size: 1.125rem\">App<\/strong><span style=\"font-size: 1.125rem\">;\u00a0<\/span><\/p>\n<pre><code class=\"language-js\">import Bio from \".\/Bio\";\nfunction App() {\n    return (\n        &lt;div className=\"App\"&gt;\n        &lt;Bio name=\"James\" language=\"Python\"\/&gt;\n        &lt;\/div&gt;\n    );\n}\nexport default App;<\/code><\/pre>\n<p>Adicionamos atributos \u00e0 nossa <strong>Bio<\/strong> tag correspondentes com as props que criamos anteriormente. Qualquer valor que passarmos nesses atributos ser\u00e1 renderizado no navegador. Isso \u00e9 importante para componentes que ser\u00e3o usados em m\u00faltiplos componentes, mas que requerem seus pr\u00f3prios dados diferentes.<\/p>\n<h2>Onde aprender mais<\/h2>\n<p>Este tutorial deu a voc\u00ea o conhecimento fundamental necess\u00e1rio para come\u00e7ar a construir aplicativos web com o React, mas n\u00e3o tudo o que h\u00e1 para saber sobre o React. Ainda existem outras funcionalidades necess\u00e1rias para construir um aplicativo eficiente com o React como o roteamento em aplicativos que possuem mais de uma p\u00e1gina e gerenciamento de estado \u00fanico usando ferramentas como Redux.<\/p>\n<p>O melhor lugar para come\u00e7ar a explorar mais sobre o React \u00e9 a <a href=\"https:\/\/reactjs.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">documenta\u00e7\u00e3o do React<\/a>. Voc\u00ea tamb\u00e9m pode conferir a <a href=\"https:\/\/beta.reactjs.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">documenta\u00e7\u00e3o beta<\/a> que est\u00e1 sendo reescrita usando Hooks.<br \/>\n<\/p>\n<h2>Resumo<\/h2>\n<p>O React, como uma biblioteca frontend, tem crescido muito em compara\u00e7\u00e3o a outras <a href=\"https:\/\/kinsta.com\/pt\/blog\/angular-vs-react\/\" rel=\"noopener\">bibliotecas\/frameworks<\/a> na comunidade de desenvolvedores e n\u00e3o mostra sinais de parar. Voc\u00ea pode encontrar React em todo roadmap moderno de desenvolvedores web.<\/p>\n<p>Com a ado\u00e7\u00e3o atual da tecnologia web3 por mais e mais desenvolvedores, React permanece sendo a ferramenta favorita para construir o frontend de aplicativos descentralizadas (DApps).<\/p>\n<p>Voc\u00ea pode construir uma variedade de aplicativos com o React, desde aplicativos web simples de lista de tarefas at\u00e9 marketplaces, pain\u00e9is de controle e muito mais.<\/p>\n<p>O React pode ser usado com muitas tecnologias como Bootstrap, <a href=\"https:\/\/kinsta.com\/pt\/blog\/tailwind-css\/\">Tailwind CSS<\/a>, Axios, Redux, Firebase, e muito mais. Tamb\u00e9m podemos usar React com Node.js e outras <a href=\"https:\/\/kinsta.com\/pt\/blog\/melhor-linguagem-de-programacao\/\" rel=\"noopener\">linguagens<\/a> backend para construir <a href=\"https:\/\/kinsta.com\/pt\/blog\/backend-vs-frontend\/\" rel=\"noopener\">aplicativos full-stack<\/a> e aplicativos web de alta velocidade.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A ind\u00fastria de desenvolvimento web tem visto um crescimento constante nos \u00faltimos anos; e \u00e0 medida que este crescimento continua, novas tecnologias est\u00e3o constantemente emergindo para &#8230;<\/p>\n","protected":false},"author":240,"featured_media":50993,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[901,523,461,710,575],"topic":[977,1002],"class_list":["post-50992","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-frontend-development","tag-javascript","tag-javascript-libraries","tag-react","tag-react-js","topic-frameworks-javascript","topic-react"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>O que \u00e9 React.js? Uma Introdu\u00e7\u00e3o da Popular Biblioteca JavaScript<\/title>\n<meta name=\"description\" content=\"O React \u00e9 uma biblioteca JavaScript de c\u00f3digo aberto baseada em componentes para construir interfaces de usu\u00e1rio r\u00e1pidas e din\u00e2micas. Explicaremos como come\u00e7ar.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/pt\/blog\/o-que-e-react-js\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"O que \u00e9 React.js? Uma Introdu\u00e7\u00e3o da Popular Biblioteca JavaScript\" \/>\n<meta property=\"og:description\" content=\"O React \u00e9 uma biblioteca JavaScript de c\u00f3digo aberto baseada em componentes para construir interfaces de usu\u00e1rio r\u00e1pidas e din\u00e2micas. Explicaremos como come\u00e7ar.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/pt\/blog\/o-que-e-react-js\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstapt\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-07-05T09:53:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-01T20:04:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/07\/what-is-react-js-feature-image.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Ihechikara Abba\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"O React \u00e9 uma biblioteca JavaScript de c\u00f3digo aberto baseada em componentes para construir interfaces de usu\u00e1rio r\u00e1pidas e din\u00e2micas. Explicaremos como come\u00e7ar.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/07\/what-is-react-js-feature-image.png\" \/>\n<meta name=\"twitter:creator\" content=\"@kinsta_pt\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_pt\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ihechikara Abba\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/o-que-e-react-js\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/o-que-e-react-js\/\"},\"author\":{\"name\":\"Ihechikara Abba\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/ac373ce22a016949523f7e464fdcae26\"},\"headline\":\"O que \u00e9 React.js? Uma Introdu\u00e7\u00e3o da Popular Biblioteca JavaScript\",\"datePublished\":\"2022-07-05T09:53:42+00:00\",\"dateModified\":\"2025-10-01T20:04:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/o-que-e-react-js\/\"},\"wordCount\":3094,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/o-que-e-react-js\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/07\/what-is-react-js-feature-image.png\",\"keywords\":[\"frontend development\",\"JavaScript\",\"JavaScript Libraries\",\"React\",\"React.js\"],\"inLanguage\":\"pt-PT\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/o-que-e-react-js\/\",\"url\":\"https:\/\/kinsta.com\/pt\/blog\/o-que-e-react-js\/\",\"name\":\"O que \u00e9 React.js? Uma Introdu\u00e7\u00e3o da Popular Biblioteca JavaScript\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/o-que-e-react-js\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/o-que-e-react-js\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/07\/what-is-react-js-feature-image.png\",\"datePublished\":\"2022-07-05T09:53:42+00:00\",\"dateModified\":\"2025-10-01T20:04:05+00:00\",\"description\":\"O React \u00e9 uma biblioteca JavaScript de c\u00f3digo aberto baseada em componentes para construir interfaces de usu\u00e1rio r\u00e1pidas e din\u00e2micas. Explicaremos como come\u00e7ar.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/o-que-e-react-js\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/pt\/blog\/o-que-e-react-js\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/o-que-e-react-js\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/07\/what-is-react-js-feature-image.png\",\"contentUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/07\/what-is-react-js-feature-image.png\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/o-que-e-react-js\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/pt\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"React\",\"item\":\"https:\/\/kinsta.com\/pt\/topicos\/react\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"O que \u00e9 React.js? Uma Introdu\u00e7\u00e3o da Popular Biblioteca JavaScript\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/pt\/#website\",\"url\":\"https:\/\/kinsta.com\/pt\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Solu\u00e7\u00f5es de hospedagem Premium, r\u00e1pida e segura\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/pt\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/pt\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstapt\/\",\"https:\/\/x.com\/kinsta_pt\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/ac373ce22a016949523f7e464fdcae26\",\"name\":\"Ihechikara Abba\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/483df106a6ba0c29683578302f74008c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/483df106a6ba0c29683578302f74008c?s=96&d=mm&r=g\",\"caption\":\"Ihechikara Abba\"},\"description\":\"Ihechikara is a software developer and technical writer. He enjoys writing articles on web technologies, programming, and IT-related topics. Connect with Ihechikara on Twitter.\",\"url\":\"https:\/\/kinsta.com\/pt\/blog\/author\/ihechivinabba\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"O que \u00e9 React.js? Uma Introdu\u00e7\u00e3o da Popular Biblioteca JavaScript","description":"O React \u00e9 uma biblioteca JavaScript de c\u00f3digo aberto baseada em componentes para construir interfaces de usu\u00e1rio r\u00e1pidas e din\u00e2micas. Explicaremos como come\u00e7ar.","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:\/\/kinsta.com\/pt\/blog\/o-que-e-react-js\/","og_locale":"pt_PT","og_type":"article","og_title":"O que \u00e9 React.js? Uma Introdu\u00e7\u00e3o da Popular Biblioteca JavaScript","og_description":"O React \u00e9 uma biblioteca JavaScript de c\u00f3digo aberto baseada em componentes para construir interfaces de usu\u00e1rio r\u00e1pidas e din\u00e2micas. Explicaremos como come\u00e7ar.","og_url":"https:\/\/kinsta.com\/pt\/blog\/o-que-e-react-js\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstapt\/","article_published_time":"2022-07-05T09:53:42+00:00","article_modified_time":"2025-10-01T20:04:05+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/07\/what-is-react-js-feature-image.png","type":"image\/png"}],"author":"Ihechikara Abba","twitter_card":"summary_large_image","twitter_description":"O React \u00e9 uma biblioteca JavaScript de c\u00f3digo aberto baseada em componentes para construir interfaces de usu\u00e1rio r\u00e1pidas e din\u00e2micas. Explicaremos como come\u00e7ar.","twitter_image":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/07\/what-is-react-js-feature-image.png","twitter_creator":"@kinsta_pt","twitter_site":"@kinsta_pt","twitter_misc":{"Escrito por":"Ihechikara Abba","Tempo estimado de leitura":"14 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/pt\/blog\/o-que-e-react-js\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/pt\/blog\/o-que-e-react-js\/"},"author":{"name":"Ihechikara Abba","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/ac373ce22a016949523f7e464fdcae26"},"headline":"O que \u00e9 React.js? Uma Introdu\u00e7\u00e3o da Popular Biblioteca JavaScript","datePublished":"2022-07-05T09:53:42+00:00","dateModified":"2025-10-01T20:04:05+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/pt\/blog\/o-que-e-react-js\/"},"wordCount":3094,"publisher":{"@id":"https:\/\/kinsta.com\/pt\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/pt\/blog\/o-que-e-react-js\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/07\/what-is-react-js-feature-image.png","keywords":["frontend development","JavaScript","JavaScript Libraries","React","React.js"],"inLanguage":"pt-PT"},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/pt\/blog\/o-que-e-react-js\/","url":"https:\/\/kinsta.com\/pt\/blog\/o-que-e-react-js\/","name":"O que \u00e9 React.js? Uma Introdu\u00e7\u00e3o da Popular Biblioteca JavaScript","isPartOf":{"@id":"https:\/\/kinsta.com\/pt\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/pt\/blog\/o-que-e-react-js\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/pt\/blog\/o-que-e-react-js\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/07\/what-is-react-js-feature-image.png","datePublished":"2022-07-05T09:53:42+00:00","dateModified":"2025-10-01T20:04:05+00:00","description":"O React \u00e9 uma biblioteca JavaScript de c\u00f3digo aberto baseada em componentes para construir interfaces de usu\u00e1rio r\u00e1pidas e din\u00e2micas. Explicaremos como come\u00e7ar.","breadcrumb":{"@id":"https:\/\/kinsta.com\/pt\/blog\/o-que-e-react-js\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/pt\/blog\/o-que-e-react-js\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/blog\/o-que-e-react-js\/#primaryimage","url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/07\/what-is-react-js-feature-image.png","contentUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/07\/what-is-react-js-feature-image.png","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/pt\/blog\/o-que-e-react-js\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/pt\/"},{"@type":"ListItem","position":2,"name":"React","item":"https:\/\/kinsta.com\/pt\/topicos\/react\/"},{"@type":"ListItem","position":3,"name":"O que \u00e9 React.js? Uma Introdu\u00e7\u00e3o da Popular Biblioteca JavaScript"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/pt\/#website","url":"https:\/\/kinsta.com\/pt\/","name":"Kinsta\u00ae","description":"Solu\u00e7\u00f5es de hospedagem Premium, r\u00e1pida e segura","publisher":{"@id":"https:\/\/kinsta.com\/pt\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/pt\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/pt\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstapt\/","https:\/\/x.com\/kinsta_pt","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/ac373ce22a016949523f7e464fdcae26","name":"Ihechikara Abba","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/483df106a6ba0c29683578302f74008c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/483df106a6ba0c29683578302f74008c?s=96&d=mm&r=g","caption":"Ihechikara Abba"},"description":"Ihechikara is a software developer and technical writer. He enjoys writing articles on web technologies, programming, and IT-related topics. Connect with Ihechikara on Twitter.","url":"https:\/\/kinsta.com\/pt\/blog\/author\/ihechivinabba\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/50992","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/users\/240"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/comments?post=50992"}],"version-history":[{"count":15,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/50992\/revisions"}],"predecessor-version":[{"id":67613,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/50992\/revisions\/67613"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/50992\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/50992\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/50992\/translations\/pt"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/50992\/translations\/de"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/50992\/translations\/es"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/50992\/translations\/fr"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/50992\/translations\/jp"},{"href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/50992\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/media\/50993"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/media?parent=50992"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/tags?post=50992"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/topic?post=50992"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}