{"id":32063,"date":"2023-02-08T15:51:26","date_gmt":"2023-02-08T18:51:26","guid":{"rendered":"\/tutoriais\/?p=32063"},"modified":"2023-04-20T18:08:50","modified_gmt":"2023-04-20T21:08:50","slug":"wordpress-react","status":"publish","type":"post","link":"\/br\/tutoriais\/wordpress-react","title":{"rendered":"Projetos de desenvolvimento com WordPress React: um guia completo para iniciantes"},"content":{"rendered":"<p>O WordPress &eacute; um poderoso <a href=\"\/br\/tutoriais\/o-que-e-cms\"><strong>Sistema de Gerenciamento de Conte&uacute;do (CMS)<\/strong><\/a><strong> <\/strong>que permite que voc&ecirc; construa qualquer site na internet, desde simples blogs at&eacute; complexas lojas virtuais. Para integrar o c&oacute;digo PHP da plataforma com o JavaScript, voc&ecirc; pode aproveitar os recursos de <a href=\"https:\/\/developer.wordpress.org\/rest-api\/\" target=\"_blank\" rel=\"noopener\"><strong>WP REST API<\/strong><\/a> e WordPress <a href=\"https:\/\/pt-br.reactjs.org\/\" target=\"_blank\" rel=\"noopener\"><strong>React<\/strong><\/a>.<\/p><p>Desenvolvido pelo Facebook, o React &eacute; uma biblioteca de <strong>interface do usu&aacute;rio (UI) <\/strong>que utiliza uma abordagem simples e baseada em componentes para construir aplica&ccedil;&otilde;es multiplataforma escal&aacute;veis que s&atilde;o f&aacute;ceis de entender. De todo modo, &eacute; importante aprender a utilizar essa biblioteca corretamente para poder aproveitar ao m&aacute;ximo as suas fun&ccedil;&otilde;es e recursos.&nbsp;<\/p><p>Neste guia, vamos explicar como utilizar o React com o WordPress. Tamb&eacute;m iremos discutir o que &eacute; esse framework, indicar seus benef&iacute;cios e mostrar como utiliz&aacute;-lo. Vamos l&aacute;!<\/p><figure class=\"wp-block-image size-large\"><a href=\"https:\/\/assets.hostinger.com\/content\/tutorials\/pdf\/WordPress-Security-Checklist(pt-br).pdf\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" width=\"1024\" height=\"283\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/WordPress-Cheat-Sheet-BR.png\/public\" alt=\"\" class=\"wp-image-30402\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/WordPress-Cheat-Sheet-BR.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/WordPress-Cheat-Sheet-BR.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/WordPress-Cheat-Sheet-BR.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/WordPress-Cheat-Sheet-BR.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/WordPress-Cheat-Sheet-BR.png\/w=1536,fit=scale-down 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><h2 class=\"wp-block-heading\" id=\"h-uma-introducao-ao-react\"><strong>Uma Introdu&ccedil;&atilde;o ao React<\/strong><\/h2><p>Antes de come&ccedil;ar, primeiramente precisamos responder &agrave; pergunta: &ldquo;<a href=\"\/br\/tutoriais\/o-que-e-react-javascript\"><strong>o que &eacute; React?<\/strong><\/a>&rdquo;. Tamb&eacute;m conhecida como ReactJS, esta &eacute; uma das mais populares bibliotecas de JavaScript que voc&ecirc; pode utilizar para o desenvolvimento web.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/c2gZqhBeHs6b-nw85uyL2EuHhRB1QRWSx6XJ7jMVGtfHq1UbOTCA6kRi1LjkiKw3Dzzm20zhTsfknaff7NiC4yE-LvdMaX0IDOgQhbc7TmEkz_gDcRGjyWnnVr8a5yoSSjDsC-qLVUbZrBBNS7v89mI\" alt=\"Site do React, biblioteca de JavaScript.\"><\/figure><\/div><p>Criada e mantida pelo Facebook, ela inclui uma extensa gama de fragmentos e c&oacute;digos completos que podem ser utilizados para constru&ccedil;&atilde;o de componentes da UI.<\/p><p>Ao contr&aacute;rio da cren&ccedil;a popular, o ReactJS n&atilde;o &eacute; um framework JavaScript, j&aacute; que ele apenas renderiza componentes da camada de visualiza&ccedil;&atilde;o de uma aplica&ccedil;&atilde;o. Sendo assim, voc&ecirc; pode combinar o uso do ReactJS com um framework de verdade, como o&nbsp; <a href=\"https:\/\/vuejs.org\/\" target=\"_blank\" rel=\"noopener\"><strong>Vue.js<\/strong><\/a>, caso esteja buscando fun&ccedil;&otilde;es mais sofisticadas para seus projetos de desenvolvimento web.<\/p><p>Tamb&eacute;m &eacute; importante notar que existe o ReactJS e o <a href=\"https:\/\/reactnative.dev\/\" target=\"_blank\" rel=\"noopener\"><strong>React Native<\/strong><\/a>. Este &uacute;ltimo &eacute; um framework JavaScript de c&oacute;digo aberto constru&iacute;do a partir da biblioteca React. Voc&ecirc; pode utilizar o React Native para criar aplicativos multiplataforma e componentes espec&iacute;ficos para as plataformas iOS e Android.<\/p><h2 class=\"wp-block-heading\" id=\"h-funcoes-e-recursos-do-react\"><strong>Fun&ccedil;&otilde;es e Recursos do React&nbsp;<\/strong><\/h2><p>Para entender melhor os benef&iacute;cios do React, &eacute; importante saber como ele funciona. Nesta se&ccedil;&atilde;o vamos indicar alguns dos principais recursos e fun&ccedil;&otilde;es dessa biblioteca:<\/p><h3 class=\"wp-block-heading\" id=\"h-jsx\"><strong>JSX<\/strong><\/h3><p>A principal extens&atilde;o de sintaxe JavaScript usada no React &eacute; a <a href=\"https:\/\/pt-br.reactjs.org\/docs\/introducing-jsx.html\" target=\"_blank\" rel=\"noopener\"><strong>JSX<\/strong><\/a>. Voc&ecirc; pode utiliz&aacute;-la para integrar um c&oacute;digo HTML em objetos JavaScript e simplificar estruturas de c&oacute;digo complexas.&nbsp;<\/p><p>O JSX tamb&eacute;m ajuda a prevenir ataques de <a href=\"https:\/\/www.avast.com\/pt-br\/c-xss\" target=\"_blank\" rel=\"noopener\"><strong>cross-site scripting (XSS)<\/strong><\/a>, pois dificulta ou impede que terceiros injetem c&oacute;digos extras por meio de entradas de usu&aacute;rios (<em>user inputs<\/em>) que n&atilde;o est&atilde;o explicitamente escritas na aplica&ccedil;&atilde;o.<\/p><p>As etiquetas (<em>tag<\/em>) JSX incluem um nome, filhos e atributos.&nbsp;<\/p><p>Uma tag HTML t&iacute;pica de imagens se parece com isso:<\/p><pre class=\"wp-block-preformatted\">&lt;img class=\"\" src=\"\" alt=\"\" &gt;<\/pre><p>J&aacute; uma tag JSX do mesmo tipo tem esse formato:<\/p><pre class=\"wp-block-preformatted\">&lt;img className=\"\" src=\"\" alt=\"\" \/&gt;<\/pre><p>Al&eacute;m disso, os valores num&eacute;ricos s&atilde;o escritos dentro das chaves. Similar ao JavaScript, as aspas representam <em>strings<\/em>:&nbsp;<\/p><pre class=\"wp-block-preformatted\">const name = 'John Doe&rsquo;;\n\nconst element = &lt;h1&gt;Hello, {name}&lt;\/h1&gt;;\n\nReactDOM.render(\n\n&nbsp;element,\n\n&nbsp;document.getElementById('root')\n\n);<\/pre><p>Voc&ecirc; pode colocar qualquer <a href=\"https:\/\/developer.mozilla.org\/pt-BR\/docs\/Web\/JavaScript\/Guide\/Expressions_and_Operators\" target=\"_blank\" rel=\"noopener\"><strong>express&atilde;o JavaScript<\/strong><\/a> v&aacute;lida dentro das chaves. Por exemplo, ela poderia ser &ldquo;user.firstName&rdquo; ou &ldquo;formatName(user)&rdquo;.<\/p><h3 class=\"wp-block-heading\" id=\"h-virtual-dom\"><strong>Virtual DOM<\/strong><\/h3><p>O <a href=\"https:\/\/developer.mozilla.org\/pt-BR\/docs\/Web\/API\/Document_Object_Model\/Introduction\" target=\"_blank\" rel=\"noopener\"><strong>Document Object Model<\/strong><\/a> (<strong><a href=\"\/br\/tutoriais\/dom-o-que-e\">DOM<\/a><\/strong>) apresenta uma p&aacute;gina da internet em uma estrutura de dados em &aacute;rvore, a qual a biblioteca React armazena em sua mem&oacute;ria. Desse modo, o React pode implementar atualiza&ccedil;&otilde;es em certas partes da estrutura em &aacute;rvore ao inv&eacute;s de refazer sua renderiza&ccedil;&atilde;o completa.<\/p><p>O <a href=\"https:\/\/pt-br.reactjs.org\/docs\/dom-elements.html\" target=\"_blank\" rel=\"noopener\"><strong>DOM virtual<\/strong><\/a><strong> <\/strong>oferece a vincula&ccedil;&atilde;o de dados unilateral (one-way). Isso faz com que os processos de manipula&ccedil;&atilde;o e atualiza&ccedil;&atilde;o dos dados sejam muito mais r&aacute;pidos do que com o DOM original.<\/p><p>O Document Object Model Virtual utiliza um processo conhecido como <em>diffing<\/em>. Isso acontece quando o React gera uma nova &aacute;rvore DOM virtual, compara ela com a &aacute;rvore antiga e ent&atilde;o encontra a maneira mais eficiente de aplicar altera&ccedil;&otilde;es no DOM real\/original. Esse processo leva menos tempo e exige menos recursos, o que &eacute; muito ben&eacute;fico para grandes projetos que envolvem m&uacute;ltiplas intera&ccedil;&otilde;es de usu&aacute;rios.&nbsp;<\/p><p>O DOM tamb&eacute;m suporta a API declarativa, isto &eacute;, voc&ecirc; pode indicar ao React em qual estado voc&ecirc; quer que a UI esteja. Assim, &eacute; poss&iacute;vel garantir que o DOM vai corresponder a esse estado.<\/p><h3 class=\"wp-block-heading\" id=\"h-componentes\"><strong>Componentes<\/strong><\/h3><p>Como j&aacute; mencionamos, os <a href=\"https:\/\/pt-br.reactjs.org\/docs\/components-and-props.html\" target=\"_blank\" rel=\"noopener\"><strong>componentes do React<\/strong><\/a> s&atilde;o peda&ccedil;os de c&oacute;digo independentes e reutiliz&aacute;veis que comp&otilde;em a UI (interface do usu&aacute;rio). Esses componentes funcionam de forma similar &agrave;s fun&ccedil;&otilde;es do JavaScript. Eles aceitam <em>props<\/em>, ou acess&oacute;rios, que s&atilde;o entradas arbitr&aacute;rias. Quando o componente de uma fun&ccedil;&atilde;o retorna um elemento, ele influencia a forma com que a UI ser&aacute; exibida.&nbsp;<\/p><p>Os <em>props<\/em> s&atilde;o elementos apenas para leitura. Aqui temos um exemplo:<\/p><pre class=\"wp-block-preformatted\">import React, { useState } from 'react'\n\nimport ReactDOM from 'react-dom'\n\nconst ParentComponent = () =&gt; {\n\n&nbsp;&nbsp;&nbsp;const [stateVariable, setStateVariable] = useState('this is the starting value for the variable');\n\n&nbsp;&nbsp;&nbsp;return (\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&gt;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h1&gt;This is a function component view&lt;\/h1&gt;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ChildComponent exampleProp={stateVariable} \/&gt;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/div&gt;\n\n&nbsp;&nbsp;&nbsp;)\n\n}\n\nconst ChildComponent = (props) =&gt; {\n\n&nbsp;&nbsp;&nbsp;return (\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&gt;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h2&gt;{props.exampleProp}&lt;\/h2&gt;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/div&gt;\n\n&nbsp;&nbsp;&nbsp;)\n\n}\n\nReactDOM.render( &lt;ParentComponent \/&gt;, document.getElementById('app') );<\/pre><p>H&aacute; dois tipos principais de componentes React: <strong>componentes de classe<\/strong> e <strong>componentes funcionais<\/strong>. Os componentes de classe gerenciam seus pr&oacute;prios estados e utilizam ciclos de vida dos <a href=\"\/br\/tutoriais\/wordpress-hooks\"><strong>hooks do WordPress<\/strong><\/a> e liga&ccedil;&otilde;es <strong>API<\/strong> para funcionar:<\/p><pre class=\"wp-block-preformatted\">class ExampleComponent extends React.Component {\n\n&nbsp;constructor(props) {\n\n&nbsp;&nbsp;&nbsp;super(props);\n\n&nbsp;&nbsp;&nbsp;this.state = { };\n\n&nbsp;}\n\n&nbsp;render() {\n\n&nbsp;&nbsp;&nbsp;return (\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&gt;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h1&gt;This is a view created by a class component&lt;\/h1&gt;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/div&gt;\n\n&nbsp;&nbsp;&nbsp;);\n\n&nbsp;}\n\n}<\/pre><p>Enquanto isso, os componentes funcionais se parecem com o indicado abaixo:<\/p><pre class=\"wp-block-preformatted\">const ExampleComponent = (props) =&gt; {\n\n&nbsp;&nbsp;&nbsp;const [stateVariable, setStateVariable] = useState('');\n\n&nbsp;&nbsp;&nbsp;return (\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&gt;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h1&gt;This is a function component view&lt;\/h1&gt;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/div&gt;\n\n&nbsp;&nbsp;&nbsp;)\n\n}<\/pre><p>Assim, componentes funcionais renderizam visualiza&ccedil;&otilde;es sem solicita&ccedil;&atilde;o de dados e sem gerenciamento de estados.&nbsp;<\/p><h3 class=\"wp-block-heading\" id=\"h-estados\"><strong>Estados<\/strong><\/h3><p>O <a href=\"https:\/\/pt-br.reactjs.org\/docs\/state-and-lifecycle.html\" target=\"_blank\" rel=\"noopener\"><strong>estado<\/strong><\/a> de um componente React se refere ao objeto que est&aacute; integrado a ele. &Eacute; aqui onde voc&ecirc; armazena os valores de propriedade dos elementos. Se o estado de um componente &eacute; alterado, ele ser&aacute; renderizado novamente.&nbsp;<\/p><p>O gerenciamento de estados &eacute; o processo de administrar os estados dessas aplica&ccedil;&otilde;es e armazenar os dados nas respectivas bibliotecas de gerenciamento. Voc&ecirc; pode utilizar algumas dessas bibliotecas de gerenciamento de estados, incluindo <a href=\"https:\/\/redux.js.org\/\" target=\"_blank\" rel=\"noopener\"><strong>Redux<\/strong><\/a> e <a href=\"https:\/\/recoiljs.org\/\" target=\"_blank\" rel=\"noopener\"><strong>Recoil<\/strong><\/a>, sendo essa &uacute;ltima a melhor op&ccedil;&atilde;o para quem &eacute; iniciante no mundo de projetos de desenvolvimento com React.&nbsp;<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"\/br\/hospedagem-wordpress\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/06\/BR-New-WP_in-text-banner.png\/public\" alt=\"\" class=\"wp-image-44638\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/06\/BR-New-WP_in-text-banner.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/06\/BR-New-WP_in-text-banner.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/06\/BR-New-WP_in-text-banner.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/06\/BR-New-WP_in-text-banner.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/div><h2 class=\"wp-block-heading\" id=\"h-por-que-usar-o-react\"><strong>Por que Usar o React?<\/strong><\/h2><p>H&aacute; muitos benef&iacute;cios na utiliza&ccedil;&atilde;o do React para fazer projetos de desenvolvimento no WordPress. Para come&ccedil;ar, ele &eacute; relativamente simples de entender, ent&atilde;o at&eacute; mesmo iniciantes podem utiliz&aacute;-lo. Al&eacute;m disso, o <a href=\"https:\/\/www.hostinger.com\/br\/hospedagem-de-sites\"><strong>melhor site de hospedagem<\/strong><\/a> do mercado j&aacute; tem suporte ao recurso.<\/p><p>J&aacute; que o React se baseia no JavaScript puro e em componentes, voc&ecirc; consegue usar ele para criar aplica&ccedil;&otilde;es baseadas em web<em> <\/em>depois de apenas alguns dias estudando seus recursos. Tamb&eacute;m h&aacute; muitos sites dispon&iacute;veis na internet que te <a href=\"\/br\/tutoriais\/11-sites-aprender-como-programar-de-graca\"><strong>ensinam a programar<\/strong><\/a> de forma gratuita. Ter um conhecimento s&oacute;lido do funcionamento b&aacute;sico do JavaScript pode facilitar e otimizar muito o processo.&nbsp;<\/p><p>Outro benef&iacute;cio do React &eacute; que ele permite que voc&ecirc; reutilize componentes em outras aplica&ccedil;&otilde;es. Por ser de c&oacute;digo aberto, voc&ecirc; pode pr&eacute;-construir seus componentes e arranj&aacute;-los entre outros componentes sem sobrecarregar ou estufar seu c&oacute;digo.&nbsp;<\/p><p>Os componentes do React tamb&eacute;m s&atilde;o relativamente simples de escrever pois s&atilde;o diretos e descomplicados. Isso gra&ccedil;as &agrave; integra&ccedil;&atilde;o com JSX, que discutiremos mais adiante neste tutorial. Voc&ecirc; ainda pode incorporar tipografias em HTML, etiquetas (<em>tags<\/em>) e m&uacute;ltiplas fun&ccedil;&otilde;es de renderiza&ccedil;&atilde;o para o desenvolvimento de aplica&ccedil;&otilde;es din&acirc;micas.&nbsp;<\/p><p>Com o React tamb&eacute;m &eacute; poss&iacute;vel utilizar a interface oficial de linha de comando (CLI) &mdash; <strong>Create<\/strong> <strong>React<\/strong> <strong>App<\/strong> &mdash; para agilizar o desenvolvimento de aplica&ccedil;&otilde;es de apenas uma p&aacute;gina. Ela conta com ferramentas pr&eacute;-configuradas que podem te ajudar a otimizar os processos de aprendizado e configura&ccedil;&atilde;o.&nbsp;<\/p><p>Por fim, o React tamb&eacute;m &eacute; ideal em termos de SEO. A implementa&ccedil;&atilde;o do DOM virtual ajuda a melhorar a velocidade das p&aacute;ginas, impulsionando o desempenho do site e sua renderiza&ccedil;&atilde;o no lado do servidor. Isso, por sua vez, facilita o processo dos <em>bots<\/em> dos mecanismos de busca rastrearem (<em>crawl<\/em>) seu site.<\/p><h2 class=\"wp-block-heading\" id=\"h-uma-visao-geral-da-wp-rest-api\"><strong>Uma Vis&atilde;o Geral da WP REST API<\/strong><\/h2><p>A <a href=\"\/br\/tutoriais\/guia-iniciante-api-rest-wordpress\/\"><strong>REST API do WordPress<\/strong><\/a> (Interface de Programa&ccedil;&atilde;o de Aplica&ccedil;&atilde;o) permite que os desenvolvedores integrem frameworks de JavaScript, como o React, com o WordPress. Voc&ecirc; consegue acessar a WP REST API a partir do front-end do seu site, e pode adicionar tipos de publica&ccedil;&otilde;es personalizadas e construir apps baseados em React suportados por esta API.<\/p><p>A WP REST API &eacute; composta por um conjunto de protocolos utilizados para construir aplica&ccedil;&otilde;es de software. Eles definem como os dados e informa&ccedil;&otilde;es s&atilde;o compartilhados entre programas e como seus componentes interagem entre si. REST, que &eacute; abrevia&ccedil;&atilde;o de Representational State Transfer (Transfer&ecirc;ncia Representacional de Estado), se refere &agrave;s limita&ccedil;&otilde;es de arquitetura que definem o estilo dos programas.&nbsp;<\/p><p>O formato para estruturar dados para serem lidos pelas aplica&ccedil;&otilde;es &eacute; chamado de <a href=\"\/br\/tutoriais\/o-que-e-json\"><strong>JavaScript Object Notation (JSON)<\/strong><\/a>. Ele ajuda a otimizar a comunica&ccedil;&atilde;o entre o WordPress e outras aplica&ccedil;&otilde;es ou programas.&nbsp;<\/p><p>A WP REST API resulta em um ambiente desvinculado que permite que os usu&aacute;rios tratem o WordPress como um <a href=\"https:\/\/studiovisual.com.br\/performance-em-wordpress-headless\" target=\"_blank\" rel=\"noopener\"><strong>CMS headless<\/strong><\/a>, ou &ldquo;sem tema&rdquo;. Isso quer dizer que voc&ecirc; pode utilizar uma variedade de frameworks front-end para conectar com o back-end do seu WordPress. Este benef&iacute;cio &eacute; especialmente vantajoso para desenvolvedores que n&atilde;o s&atilde;o entusiastas do PHP.<\/p><h2 class=\"wp-block-heading\" id=\"h-react-antes-de-comecar\"><strong>React &ndash; Antes de Come&ccedil;ar<\/strong><\/h2><p>Ter conhecimentos b&aacute;sicos de <a href=\"\/br\/tutoriais\/o-que-e-javascript\"><strong>JavaScript<\/strong><\/a>, <a href=\"\/br\/tutoriais\/codigos-css-prontos-guia-pdf\"><strong>CSS<\/strong><\/a>, e <a href=\"\/br\/tutoriais\/codigos-html-prontos-guia-pdf\"><strong>HTML<\/strong><\/a><strong> <\/strong>ajuda muito a aprender a utilizar o React. Al&eacute;m disso, o processo de aprendizado pode ser ainda mais eficiente caso voc&ecirc; esteja familiarizado com o <a href=\"http:\/\/es6-features.org\/\" target=\"_blank\" rel=\"noopener\"><strong>ECMAScript 6<\/strong><\/a> (tamb&eacute;m conhecido como ES6), com programa&ccedil;&atilde;o funcional e com programa&ccedil;&atilde;o orientada a objetos.&nbsp;<\/p><p>Em termos de programas, voc&ecirc; tamb&eacute;m precisar&aacute; de algumas depend&ecirc;ncias instaladas em seu computador. Elas incluem <a href=\"\/br\/tutoriais\/instalar-node-js-ubuntu\"><strong>NodeJS<\/strong><\/a> e <a href=\"\/br\/tutoriais\/o-que-e-npm\"><strong>npm<\/strong><\/a>, al&eacute;m de um editor de textos. Um programa opcional &eacute; o <a href=\"https:\/\/git-scm.com\/downloads\" target=\"_blank\" rel=\"noopener\"><strong>Git<\/strong><\/a>, que voc&ecirc; tamb&eacute;m pode querer utilizar para ter controle das vers&otilde;es.&nbsp;<\/p><p>A forma mais popular de desenvolver projetos para o WordPress com React &eacute; utilizando um aplicativo chamado <a href=\"https:\/\/create-react-app.dev\/\" target=\"_blank\" rel=\"noopener\"><strong>Create React App<\/strong><\/a>:<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/D-L8YNfwzgqagJ_3GHVr-E0WrVrmbrPXc-xPo-XQKkWedYxWjD8sASKFW9dHX9V9bGxda6SCSuvXO6NPPGNemX1xQN8AH03AlQ1FpctOH688AgDTiMAUHyiVWHsmCg4lXj4bxUqB0t5SW82oGvyvjD8\" alt=\"Site do Create React App\"><\/figure><\/div><p>O CRA oferece um ambiente simples para aprender sobre o funcionamento do React e sobre como utiliz&aacute;-lo para construir aplica&ccedil;&otilde;es de uma &uacute;nica p&aacute;gina. Note que, para us&aacute;-lo, voc&ecirc; primeiramente precisar&aacute; do Node e do npm em seu dispositivo.&nbsp;<\/p><p>Para criar um novo projeto, voc&ecirc; pode rodar o seguinte comando em seu terminal:<\/p><pre class=\"wp-block-preformatted\">npx create-react-app wp-react-demo<\/pre><p>Caso voc&ecirc; ainda n&atilde;o tenha feito isso, esse comando vai confirmar que voc&ecirc; deseja instalar o Create React App antes de criar sua <em>demo<\/em>. Isso cria um modelo padr&atilde;o, ou <em>boilerplate template<\/em>, para a aplica&ccedil;&atilde;o. Voc&ecirc; tamb&eacute;m pode substituir o elemento &ldquo;wp-react-demo&rdquo; com seu pr&oacute;prio nome.<\/p><p>Depois, rode o seguinte comando:<\/p><pre class=\"wp-block-preformatted\">cd wp-react-demo\n\nnpm start<\/pre><p>A estrutura do diret&oacute;rio que ser&aacute; exibida dever&aacute; se parecer com a seguinte:<\/p><pre class=\"wp-block-preformatted\">&#9500;&#9472;&#9472; README.md\n\n&#9500;&#9472;&#9472; package.json\n\n&#9500;&#9472;&#9472; public\n\n&#9474; &#9500;&#9472;&#9472; favicon.ico\n\n&#9474; &#9500;&#9472;&#9472; index.html\n\n&#9474; &#9492;&#9472;&#9472; manifest.json\n\n&#9500;&#9472;&#9472; src\n\n&#9474; &#9500;&#9472;&#9472; App.css\n\n&#9474; &#9500;&#9472;&#9472; App.js\n\n&#9474; &#9500;&#9472;&#9472; App.test.js\n\n&#9474; &#9500;&#9472;&#9472; index.css\n\n&#9474; &#9500;&#9472;&#9472; index.js\n\n&#9474; &#9500;&#9472;&#9472; logo.svg\n\n&#9474; &#9492;&#9472;&#9472; registerServiceWorker.js<\/pre><p>No diret&oacute;rio src, voc&ecirc; encontrar&aacute; todos os arquivos JavaScript em que estar&aacute; trabalhando. Agora, voc&ecirc; pode visitar o endere&ccedil;o <strong>localhost:3000<\/strong> para carregar o arquivo <strong>index.html<\/strong>.<\/p><p>O arquivo <strong>public\/index.html<\/strong><em> <\/em>n&atilde;o cont&eacute;m muitos elementos. De todo modo, voc&ecirc; pode encontrar nele a seguinte linha, que ser&aacute; o ponto de in&iacute;cio do seu projeto:<\/p><pre class=\"wp-block-preformatted\">&lt;div id=\"root\"&gt;&lt;\/div&gt;<\/pre><p>Sob o arquivo<em> <\/em><strong>index.js<\/strong> do diret&oacute;rio src, voc&ecirc; encontrar&aacute; o seguinte:<\/p><pre class=\"wp-block-preformatted\">import React from 'react';\n\nimport ReactDOM from 'react-dom';\n\nimport App from '.\/App';\n\nReactDOM.render(&lt;App \/&gt;, document.getElementById('root'));<\/pre><p>Isso quer dizer que ele est&aacute; renderizando o componente <strong>App<\/strong>, o qual voc&ecirc; pode encontrar em <strong>src.\/App.js<\/strong>. Voc&ecirc; poder&aacute; substituir isso com o seu pr&oacute;prio conte&uacute;do HTML. Tamb&eacute;m &eacute; poss&iacute;vel usar o HTML <em>insider<\/em> render() gra&ccedil;as &agrave; extens&atilde;o de sintaxe JSX.&nbsp;<\/p><h2 class=\"wp-block-heading\" id=\"h-como-consultar-a-wp-rest-api-a-partir-do-react\"><strong>Como Consultar a WP REST API a Partir do React<\/strong><\/h2><p>Por padr&atilde;o, voc&ecirc; pode fazer uma solicita&ccedil;&atilde;o GET para utilizar a WP REST API no front-end do seu site. Por exemplo, voc&ecirc; pode utilizar \/wp-json\/wp\/v2\/posts para acessar todos os seus posts. Mantendo nosso &uacute;ltimo exemplo, os dados do post estariam localizados em <strong>http:\/\/localhost\/wp-json\/wp\/v2\/posts\/<\/strong>.<\/p><p>Para come&ccedil;ar a usar o React, voc&ecirc; pode rodar o seguinte comando em seu terminal:<\/p><pre class=\"wp-block-preformatted\">npx create-react-app react-app<\/pre><p>Em seguida, rode o comando indicado abaixo:<\/p><pre class=\"wp-block-preformatted\">cd react-app\n\nnpm install @material-ui\/core<\/pre><p>No pr&oacute;ximo passo, voc&ecirc; pode inserir o exemplo indicado a seguir:<\/p><pre class=\"wp-block-preformatted\">import React, { useEffect, useState } from 'react';\n\nimport Card from '@material-ui\/core\/Card';\n\nimport CardContent from '@material-ui\/core\/CardContent';\n\nimport Typography from '@material-ui\/core\/Typography';\n\nimport Grid from '@material-ui\/core\/Grid';\n\nexport default function Posts() {\n\n&nbsp;&nbsp;&nbsp;const [posts, setPosts] = useState([]);\n\n&nbsp;&nbsp;&nbsp;useEffect(() =&gt; {\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;async function loadPosts() {\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const response = await fetch('\/wp-json\/wp\/v2\/posts');\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!response.ok) {\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/ oups! something went wrong\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const posts = await response.json();\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setPosts(posts);\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loadPosts();\n\n&nbsp;&nbsp;}, [])\n\n&nbsp;return (\n\n&nbsp;&nbsp;&nbsp;&lt;Grid container spacing={2}&gt;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{posts.map((post, index) =&gt; (\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Grid item xs={4} key={index}&gt;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Card&gt;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;CardContent&gt;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Typography\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;color=\"textSecondary\"\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gutterBottom\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dangerouslySetInnerHTML={{__html: post.title.rendered}} \/&gt;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Typography\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;variant=\"body2\"\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;component=\"p\"\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dangerouslySetInnerHTML={{__html: post.content.rendered}} \/&gt;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/CardContent&gt;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/Card&gt;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/Grid&gt;\n\n&nbsp;&nbsp;&nbsp;&nbsp;))}\n\n&nbsp;&nbsp;&nbsp;&lt;\/Grid&gt;\n\n);\n\n}<\/pre><p>Os exemplos indicados acima utilizam os <a href=\"https:\/\/pt-br.reactjs.org\/docs\/hooks-overview.html\" target=\"_blank\" rel=\"noopener\"><strong>Hooks do React<\/strong><\/a> useEffect e useState. O primeiro declara qual o conjunto de posts e faz a solicita&ccedil;&atilde;o para atualiz&aacute;-los, j&aacute; o segundo desses hooks &eacute; o que obt&eacute;m o c&oacute;digo.&nbsp;<\/p><h2 class=\"wp-block-heading\" id=\"h-como-criar-um-tipo-de-post-personalizado-com-o-react\"><strong>Como Criar um Tipo de Post Personalizado com o React<\/strong><\/h2><p>Voc&ecirc; tamb&eacute;m pode utilizar o React para criar um <a href=\"\/br\/tutoriais\/como-criar-custom-post-types-wordpress\"><strong>WordPress Custom Post Type<\/strong><\/a>. De todo modo, h&aacute; algumas ferramentas que voc&ecirc; precisar&aacute; instalar antes de iniciar a cria&ccedil;&atilde;o desse post personalizado. A instala&ccedil;&atilde;o desses recursos facilita e agiliza ao m&aacute;ximo o processo.&nbsp;<\/p><p>Primeiramente, voc&ecirc; precisa <a href=\"\/br\/tutoriais\/como-instalar-plugins-wordpress\"><strong>instalar<\/strong><\/a> e ativar o plugin gratuito do WordPress <a href=\"https:\/\/br.wordpress.org\/plugins\/custom-post-type-ui\/\" target=\"_blank\" rel=\"noopener\"><strong>Custom Post Type UI<\/strong><\/a>.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/Rt_F5VExoDttDdz7BvFekVRWeMEv7yj9KjC-BB930UDcLfzB-kWt-G7hOR3jw0YOWbMO7zTNUDw-4RUBF8FDbheQn3PNTCRNyEaoqXms-nSe-SV8DcmIQ-8pY9GM5vdz1x28LO2Kk5Me2cMKGAT1OxQ\" alt=\"Banner do plugin Custom Post Type UI\"><\/figure><\/div><p>Esse plugin simplifica o processo de cria&ccedil;&atilde;o de um tipo de post personalizado no WordPress.<\/p><p>Al&eacute;m disso, recomendamos que voc&ecirc; instale outro plugin do WordPress, o <a href=\"https:\/\/pt.wordpress.org\/plugins\/advanced-custom-fields\/\" target=\"_blank\" rel=\"noopener\"><strong>Advanced Custom Fields (ACF)<\/strong><\/a>.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/3-Gb3fLxOOwdO9D6NG4khmyHKPdwFYfSEJdjyfLbEIjWVCu_iT-5csUSwsbHwVhIJl3pCwmSIUVdGwG6aOBRH1cD3lOYIDDB8Q-kd1oUFXr6H-D3Bwbq1Bhplvfgr7M1fJbtyqTaOPVXFhnoKdL6M4s\" alt=\"Banner do plugin Advanced Custom Fields (ACF)\"><\/figure><\/div><p>Essa ferramenta tamb&eacute;m &eacute; gratuita. O plugin ACF pode ser utilizado para criar e adicionar campos customizados nos seus posts personalizados. Tamb&eacute;m sugerimos ativar o <a href=\"https:\/\/br.wordpress.org\/plugins\/acf-to-rest-api\/\" target=\"_blank\" rel=\"noopener\"><strong>ACF to REST API<\/strong><\/a> para fazer com que seus campos personalizados fiquem dispon&iacute;veis nos seus posts.&nbsp;<\/p><p>Depois dessas configura&ccedil;&otilde;es de funcionalidades, chegou a hora de come&ccedil;ar o processo de adicionar e editar um tipo de post. Para isso, navegue at&eacute; o menu<em> <\/em><strong>CPT UI&rarr; Add\/Edit Post Types<\/strong><em> <\/em>a partir do seu painel de administra&ccedil;&atilde;o do WordPress. No nosso exemplo, vamos utilizar o nome &ldquo;Books&rdquo;. Nele, tamb&eacute;m selecionamos a op&ccedil;&atilde;o de autopreenchimento para o resto dos campos da p&aacute;gina (auto-populate).&nbsp;<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/x-pyk60TK4EocCr-gGdRYoCiA6S6-9-8cDrYCtjoPZxt-dHAdzlKTeiG8k_bTprtzBxtGpBbge1DSYMXYTpBrXpp4kN4dF1xkH18LesUehww0fnSVw9PR16Gyn71OLC9jY4G5ITITr1MzKC8IYAiuIA\" alt=\"Menu CPT-UI do WordPress, se&ccedil;&atilde;o de adicionar novo tipo de post\"><\/figure><\/div><p>Na se&ccedil;&atilde;o de exibi&ccedil;&atilde;o na API (<strong>Show in REST API<\/strong>), configure a op&ccedil;&atilde;o em <strong>True<\/strong> e insira o nome desejado como a base da slug da REST API. No nosso exemplo, adicionamos a palavra &ldquo;Books&rdquo;. J&aacute; na se&ccedil;&atilde;o <strong>Supports<\/strong>, marque os campos de sele&ccedil;&atilde;o das op&ccedil;&otilde;es&nbsp; <strong>Author<\/strong><em> <\/em>e <strong>Custom fields<\/strong>. Clique em <strong>Save Post Type<\/strong> para salvar as configura&ccedil;&otilde;es do tipo de post assim que tiver conclu&iacute;do o processo.&nbsp;<\/p><p>Depois disso, podemos adicionar campos personalizados para o tipo de post customizado que acabamos de criar. Navegue at&eacute; a aba <strong>Custom Fields &rarr; Add New<\/strong>, e adicione um t&iacute;tulo apropriado. No nosso exemplo, escolhemos &ldquo;Book Info&rdquo; (Informa&ccedil;e&otilde;s do Livro). Ent&atilde;o voc&ecirc; pode clicar no bot&atilde;o <strong>Add Field <\/strong>para adicionar e completar o campo com seu r&oacute;tulo (<em>label<\/em>), nome e tipo.&nbsp;<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/xuk9mDYI_VTwwPWqVnZ8-gMbWQq6Ipr08otu_1NEuxHwFIqtdolsh-K4pyXksKMdDlM39ndb4Uj2QB_flxfGKowe2kR5wbDm066V4RoA2Uy-gtVPR-e2BIiNQwsc9Clo8cUpkE2Jm5ET3fVf3mdfCNM\" alt=\"Se&ccedil;&atilde;o de adi&ccedil;&atilde;o de novo campo personalizado\"><\/figure><\/div><p>Na se&ccedil;&atilde;o da localiza&ccedil;&atilde;o, <strong>Location<\/strong>, voc&ecirc; pode configurar o tipo de post para que ele seja igual ao tipo de post personalizado que acabamos de criar (<strong>book<\/strong>). Quando tiver conclu&iacute;do, clique em <strong>Publish<\/strong> para ativar e publicar o campo personalizado.&nbsp;<\/p><p>Depois, acesse o menu <strong>My Books &rarr; Add New<\/strong><em> <\/em>e insira o t&iacute;tulo, resumo e imagem destacada. Voc&ecirc; pode repetir esse processo para criar quantos posts personalizados desejar.&nbsp;<\/p><p>Agora, a partir do seu terminal, insira os seguintes comandos, rodando um por vez antes de passar para o pr&oacute;ximo:<\/p><pre class=\"wp-block-preformatted\">npx create-react-app frontend\n\ncd frontend\n\nnpm i axios\n\nnpm start<\/pre><p>Depois, dentro do diret&oacute;rio src, voc&ecirc; pode criar uma pasta chamada <em>components<\/em>, seguida de um arquivo chamado <strong>books.js<\/strong>. Quando tiver finalizado essa configura&ccedil;&atilde;o, insira o seguinte c&oacute;digo:<\/p><pre class=\"wp-block-preformatted\">import React, { Component } from 'react';\n\nimport axios from 'axios';\n\nexport class Books extends Component {\n\n&nbsp;&nbsp;state = {\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;books: [],\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isLoaded: false\n\n&nbsp;&nbsp;}\n\ncomponentDidMount () {\n\n&nbsp;&nbsp;axios.get('http:\/\/localhost:3000\/wp-json\/wp\/v2\/books')\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.then(res =&gt; this.setState({\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;books: res.data,\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isLoaded: true\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}))\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.catch(err =&gt; console.log(err))\n\n&nbsp;&nbsp;}\n\n&nbsp;&nbsp;render() {\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log(this.state);\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return (\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&gt;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/div&gt;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)\n\n&nbsp;&nbsp;}\n\n}\n\nexport default Books;<\/pre><p>No arquivo <strong>App.js<\/strong>, insira o c&oacute;digo indicado abaixo:<\/p><pre class=\"wp-block-preformatted\">import React from 'react';\n\nimport '.\/App.css';\n\nimport Books from '.\/components\/Books';\n\nfunction App() {\n\nreturn (\n\n&nbsp;&nbsp;&lt;div className=\"App\"&gt;\n\n&nbsp;&nbsp;&nbsp;&lt;Books&gt;\n\n&nbsp;&nbsp;&lt;\/div&gt;\n\n);\n\n}\n\nexport default App;<\/pre><p>Agora, no seu terminal, voc&ecirc; pode rodar o comando npm start. Ele far&aacute; a inicializa&ccedil;&atilde;o do app React. Voc&ecirc; poder&aacute; visualizar o painel de dados &ldquo;Book&rdquo; quando abri-lo em um navegador. &Eacute; poss&iacute;vel exibir cada t&iacute;tulo atrav&eacute;s do mapeamento de cada livro (book).<\/p><p>No arquivo<strong> Book.js<\/strong>, adicione o seguinte c&oacute;digo:<\/p><pre class=\"wp-block-preformatted\">render() {\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const {books, isLoaded} = this.state;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return (\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&gt;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{books.map(book =&gt; &lt;h4&gt;{book.title.rendered}&lt;\/h4&gt;)}\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/div&gt;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)\n\n&nbsp;&nbsp;}<\/pre><p>Note que voc&ecirc; tamb&eacute;m pode separar a cole&ccedil;&atilde;o de livros em um &uacute;nico componente de livro. Isso pode ser feito atrav&eacute;s da cria&ccedil;&atilde;o de um arquivo dentro da pasta src\/components. Voc&ecirc; tamb&eacute;m pode adicionar classes CSS personalizadas para estilizar o tipo de post personalizado que criou (app.css).<\/p><h2 class=\"wp-block-heading\" id=\"h-como-criar-um-tema-wordpress-react-2-metodos\"><strong>Como Criar um Tema WordPress React (2 M&eacute;todos)<\/strong><\/h2><p>Uma das muitas coisas que voc&ecirc; pode fazer com o React &eacute; <a href=\"\/br\/tutoriais\/wordpress-como-criar-um-tema-responsivo-usando-html5\"><strong>criar um tema WordPress responsivo<\/strong><\/a>. H&aacute; diversas t&eacute;cnicas para desenvolver um tema utilizando o React, e aqui vamos conhecer dois dos m&eacute;todos mais populares:&nbsp;<\/p><h3 class=\"wp-block-heading\" id=\"h-1-crie-um-tema-wordpress-react-utilizando-o-wp-scripts\"><strong>1. Crie um Tema WordPress React Utilizando o WP Scripts&nbsp;<\/strong><\/h3><p>Em apps t&iacute;picos criados com React, voc&ecirc; precisa importar a biblioteca do React logo no in&iacute;cio dos arquivos. De todo modo, com o <a href=\"https:\/\/make.wordpress.org\/core\/2018\/12\/06\/javascript-packages-and-interoperability-in-5-0-and-beyond\/\" target=\"_blank\" rel=\"noopener\"><strong>WordPress 5.0<\/strong><\/a>, o CMS j&aacute; vem acompanhado pelas bibliotecas React e ReactDOM,&nbsp; e exporta elas em wp.element, um&nbsp; objeto window global.<\/p><p>Se voc&ecirc; j&aacute; fez uso do React para criar projetos antes, provavelmente j&aacute; utilizou o Create React App para rodar seu servidor de desenvolvimento. De todo modo, isso n&atilde;o &eacute; necess&aacute;rio com o WordPress.&nbsp;<\/p><p>Isso porque o time do WordPress criou um pacote wp-scripts baseado nos react-scripts usados com o Create React App. Esse pacote WP Scripts j&aacute; inclui os comandos necess&aacute;rios por padr&atilde;o.&nbsp;<\/p><p>Para carregar o React no seu tema, navegue at&eacute; o arquivo <strong>functions.php<\/strong> do seu tema e adicione o seguinte trecho de c&oacute;digo:<\/p><pre class=\"wp-block-preformatted\">\/\/ Enqueue Theme JS w React Dependency\n\nadd_action( 'wp_enqueue_scripts', 'my_enqueue_theme_js' );\n\nfunction my_enqueue_theme_js() {\n\n&nbsp;wp_enqueue_script(\n\n&nbsp;&nbsp;&nbsp;'my-theme-frontend',\n\n&nbsp;&nbsp;&nbsp;get_stylesheet_directory_uri() . '\/build\/index.js',\n\n&nbsp;&nbsp;&nbsp;['wp-element'],\n\n&nbsp;&nbsp;&nbsp;time(), \/\/ Change this to null for production\n\n&nbsp;&nbsp;&nbsp;true\n\n&nbsp;);\n\n}<\/pre><p>Esse c&oacute;digo far&aacute; com que o elemento wp-element seja adicionado como uma depend&ecirc;ncia do seu arquivo JavaScript. Depois, &eacute; necess&aacute;rio configurar um arquivo <strong>package.json<\/strong>. A partir da raiz do seu tema WordPress, rode o seguinte comando:<\/p><pre class=\"wp-block-preformatted\">npm init<\/pre><p>Uma vez que isso estiver feito, rode o pr&oacute;ximo comando:&nbsp;<\/p><pre class=\"wp-block-preformatted\">npm install @wordpress\/scripts --save-dev<\/pre><p>O WP Scripts ser&aacute; baixado no seu <strong>node_modules,<\/strong> ent&atilde;o eles estar&atilde;o dispon&iacute;veis para serem utilizados nas suas linhas de comando. Para mapear o WP Scripts em scripts NPM, voc&ecirc; pode navegar at&eacute; o seu arquivo <strong>package.json<\/strong>, carregar as configura&ccedil;&otilde;es de &ldquo;script&rdquo; e substitu&iacute;-las com o exemplo indicado abaixo:<\/p><pre class=\"wp-block-preformatted\">{\n\n \"name\": \"myreacttheme\",\n\n \"version\": \"1.0.0\",\n\n \"description\": \"My WordPress theme with React\",\n\n \"main\": \"src\/index.js\",\n\n \"dependencies\": {},\n\n \"devDependencies\": {\n\n   \"@wordpress\/scripts\": \"^5.1.0\"\n\n },\n\n \"scripts\": {\n\n   \"build\": \"wp-scripts build\",\n\n   \"check-engines\": \"wp-scripts check-engines\",\n\n   \"check-licenses\": \"wp-scripts check-licenses\",\n\n   \"lint:css\": \"wp-scripts lint-style\",\n\n   \"lint:js\": \"wp-scripts lint-js\",\n\n   \"lint:pkg-json\": \"wp-scripts lint-pkg-json\",\n\n   \"start\": \"wp-scripts start\",\n\n   \"test:e2e\": \"wp-scripts test-e2e\",\n\n   \"test:unit\": \"wp-scripts test-unit-js\"\n\n },\n\n \"author\": \"\",\n\n \"license\": \"1 GNU V2+, MIT\"\n\n}<\/pre><p>Depois disso, voc&ecirc; pode rodar o seguinte comando:<\/p><pre class=\"wp-block-preformatted\">npm start<\/pre><p>Esse comando vai buscar os arquivos importados a partir do <strong>src\/index.js<\/strong><em> <\/em>e constru&iacute;-los no <strong>build\/index.js<\/strong> sempre que um arquivo for modificado.&nbsp;<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"\/br\/hospedagem-wordpress\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/06\/BR-New-WP_in-text-banner.png\/public\" alt=\"\" class=\"wp-image-44638\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/06\/BR-New-WP_in-text-banner.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/06\/BR-New-WP_in-text-banner.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/06\/BR-New-WP_in-text-banner.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/06\/BR-New-WP_in-text-banner.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/div><h3 class=\"wp-block-heading\" id=\"h-2-crie-um-tema-wordpress-react-utilizando-o-create-react-wptheme\"><strong>2. Crie um Tema WordPress React Utilizando o Create-React-WPTheme<\/strong><\/h3><p>Outro m&eacute;todo para criar um tema WordPress React &eacute; utilizar o <a href=\"https:\/\/github.com\/devloco\/create-react-wptheme\" target=\"_blank\" rel=\"noopener\"><strong>create-react-wptheme<\/strong><\/a> desenvolvido pelo usu&aacute;rio <em>devloco<\/em>. Este pacote &eacute; muito similar ao create-react-app. Entretanto, ele utiliza o WordPress ao inv&eacute;s do <em>webpack <\/em>como servidor de desenvolvimento. Voc&ecirc; tamb&eacute;m ter&aacute; acesso a todas as fun&ccedil;&otilde;es centrais (<em>core<\/em>) do WordPress como hooks, filtros, a&ccedil;&otilde;es, etc.&nbsp;<\/p><p>Para configurar esse recurso, voc&ecirc; pode dar in&iacute;cio num terminal (ou no GIT bash) em sua instala&ccedil;&atilde;o WordPress local, e ent&atilde;o rodar o seguinte comando:<\/p><pre class=\"wp-block-preformatted\">npx create-react-wptheme barebones<\/pre><p><strong>&ldquo;Barebones&rdquo;<\/strong> neste caso &eacute; o nome do tema. Voc&ecirc; pode alterar esse nome para qualquer outro, de acordo com o que deseja chamar o tema que est&aacute; criando.&nbsp;<\/p><p>Em seguida, voc&ecirc; ver&aacute; uma mensagem informando que a instala&ccedil;&atilde;o criou um diret&oacute;rio raiz e uma pasta &ldquo;react-src&rdquo; dentro dela. Esse diret&oacute;rio &ldquo;react-src&rdquo; &eacute; importante porque ele cont&eacute;m todo o seu c&oacute;digo n&atilde;o compilado.&nbsp;<\/p><p>Depois, &eacute; necess&aacute;rio adicionar outros arquivos essenciais para validar o processo, como o <strong>styles.css<\/strong><em> <\/em>e<em> <\/em><strong>index.php<\/strong>. No terminal, digite o seguinte comando:<\/p><pre class=\"wp-block-preformatted\">cd barebones\/react-src\n\nnpm run wpstart<\/pre><p>Agora, quando voc&ecirc; navegar pelo <strong>wp-admin &rarr; themes<\/strong>, j&aacute; dever&aacute; ver o seu novo tema. Clique no bot&atilde;o <strong>Ativar<\/strong> ou <strong>Activate<\/strong> e retorne at&eacute; o terminal para rodar o pr&oacute;ximo comando:<\/p><pre class=\"wp-block-preformatted\">npm run wpstart<\/pre><p>Isso far&aacute; com que uma nova aba seja automaticamente aberta em seu navegador. Lembre-se de que os arquivos localizados na pasta raiz (tudo aquilo fora do react-src) n&atilde;o devem ser editados. Eles cont&ecirc;m a vers&atilde;o compilada do c&oacute;digo necess&aacute;rio para rodar o WordPress e o React.&nbsp;<\/p><p>Ent&atilde;o, para criar um novo tema, voc&ecirc; pode usar o seguinte:<\/p><pre class=\"wp-block-preformatted\">npx create-react-wptheme my_react_theme<\/pre><p>Note que voc&ecirc; pode alterar o elemento &ldquo;my_react_theme&rdquo; de acordo com o nome que desejar. Depois, rode o pr&oacute;ximo comando:<\/p><pre class=\"wp-block-preformatted\">cd my_react_theme\/react-src\n\nnpm run start<\/pre><p>Lembre-se de sempre substituir o &ldquo;my_react_theme&rdquo; com o mesmo nome que definiu no passo anterior. Essa etapa vai configurar o tema para que seja visto no painel de administra&ccedil;&atilde;o.&nbsp;<\/p><p>Depois que concluir o desenvolvimento do seu tema, ser&aacute; necess&aacute;rio utilizar o comando de constru&ccedil;&atilde;o (build) para mov&ecirc;-lo para a produ&ccedil;&atilde;o. Para fazer isso, abra seu prompt de comando, navegue at&eacute; a pasta <strong>react-src<\/strong> do seu tema e rode o comando indicado abaixo:<\/p><pre class=\"wp-block-preformatted\">npm run build<\/pre><p>Esse processo vai otimizar seus arquivos localizados dentro da pasta. Ent&atilde;o voc&ecirc; j&aacute; pode fazer o deploy e implantar no seu servidor.&nbsp;<\/p><h2 class=\"wp-block-heading\" id=\"h-como-adicionar-o-react-em-um-template-de-pagina-personalizada\"><strong>Como Adicionar o React em um Template de P&aacute;gina Personalizada<\/strong><\/h2><p>Se voc&ecirc; est&aacute; se perguntando <a href=\"\/br\/tutoriais\/como-criar-o-tema-filho-wordpress\"><strong>como criar um child theme no WordPress<\/strong><\/a><strong> <\/strong>utilizando a biblioteca React, o processo &eacute; relativamente parecido com a cria&ccedil;&atilde;o de um tema normal, j&aacute; que trata-se apenas de um tema filho. Nesse caso voc&ecirc; pode adicionar o React em um template de p&aacute;gina personalizada.&nbsp;<\/p><p>Vamos come&ccedil;ar com a estrutura padr&atilde;o de um tema:<\/p><pre class=\"wp-block-preformatted\">\/build\n\n\/src\n\n\/-- index.js\n\nfunctions.php\n\npackage.json\n\npage-react.php\n\nstyle.css<\/pre><p>Depois, voc&ecirc; deve adicionar o seguinte trecho de c&oacute;digo no arquivo <strong>functions.php<\/strong> do seu tema:<\/p><pre class=\"wp-block-preformatted\">&lt;?php\n\nadd_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );\n\nfunction my_theme_enqueue_styles() {\n\n&nbsp;$parent_style = 'twentytwenty-style';\n\n&nbsp;wp_enqueue_style( $parent_style, get_template_directory_uri() . '\/style.css' );\n\n&nbsp;wp_enqueue_style( 'child-style',\n\n&nbsp;&nbsp;&nbsp;get_stylesheet_directory_uri() . '\/style.css',\n\n&nbsp;&nbsp;&nbsp;[ $parent_style ],\n\n&nbsp;&nbsp;&nbsp;time() \/\/For production use wp_get_theme()-&gt;get('Version')\n\n&nbsp;);\n\n&nbsp;wp_enqueue_script(\n\n&nbsp;&nbsp;&nbsp;'my-theme-frontend',\n\n&nbsp;&nbsp;&nbsp;get_stylesheet_directory_uri() . '\/build\/index.js',\n\n&nbsp;&nbsp;&nbsp;['wp-element'],\n\n&nbsp;&nbsp;&nbsp;time() \/\/For production use wp_get_theme()-&gt;get('Version')&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n\n&nbsp;);\n\n&nbsp;}<\/pre><p>Voc&ecirc; tamb&eacute;m vai precisar adicionar um c&oacute;digo no arquivo <strong>style.css<\/strong> do tema. Dentro desse arquivo de estilo, copie e cole o seguinte trecho:<\/p><pre class=\"wp-block-preformatted\">\/*\n\nTheme Name: &nbsp; Twenty Twenty Child\n\nDescription:&nbsp; Twenty Twenty Child Theme\n\nAuthor: &nbsp; &nbsp; &nbsp; Your Name\n\nAuthor URI: &nbsp; https:\/\/yourwebsite.com\n\nTemplate: &nbsp; &nbsp; twentytwenty\n\nVersion:&nbsp; &nbsp; &nbsp; 0.9.0\n\nLicense:&nbsp; &nbsp; &nbsp; GNU General Public License v2 or later\n\nLicense URI:&nbsp; http:\/\/www.gnu.org\/licenses\/gpl-2.0.html\n\nText Domain:&nbsp; twentytwentychild\n\n*\/<\/pre><p>Depois disso, voc&ecirc; poder&aacute; criar um template b&aacute;sico de p&aacute;gina personalizada (<strong>page-react.php<\/strong>) utilizando esse exemplo:<\/p><pre class=\"wp-block-preformatted\">&lt;? php\n\n\/**\n\n* Template Name: React Template\n\n*\/\n\nget_header();\n\n?&gt;\n\n&lt;main id=\"site-content\" role=\"main\"&gt;\n\n&nbsp;&lt;article class=\"post-2 page type-page status-publish hentry\"&gt;\n\n&nbsp;&nbsp;&nbsp;&lt;?php get_template_part( 'template-parts\/entry-header' ); ?&gt;\n\n&nbsp;&nbsp;&nbsp;&lt;div class=\"post-inner thin\"&gt;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div class=\"entry-content\"&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div id=\"react-app\"&gt;&lt;\/div&gt;&lt;!-- #react-app --&gt;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/div&gt;&lt;!-- .entry-content --&gt;\n\n&nbsp;&nbsp;&nbsp;&lt;\/div&gt;&lt;!-- .post-inner --&gt;\n\n&nbsp;&lt;\/article&gt;&lt;!-- .post --&gt;\n\n&lt;\/main&gt;&lt;!-- #site-content --&gt;\n\n&lt;?php get_template_part( 'template-parts\/footer-menus-widgets' ); ?&gt;\n\n&lt;?php get_footer(); ?&gt;<\/pre><p>Agora voc&ecirc; pode criar uma nova p&aacute;gina no WordPress e ent&atilde;o selecionar o <strong>React Template <\/strong>como modelo de tal p&aacute;gina.&nbsp;<\/p><h2 class=\"wp-block-heading\" id=\"h-como-utilizar-o-react-em-seu-app\"><strong>Como Utilizar o React em seu App<\/strong><\/h2><p>Se voc&ecirc; deseja usar o React em um app que j&aacute; existe, basta adicionar o <a href=\"\/br\/tutoriais\/o-que-e-cdn\"><strong>CDN<\/strong><\/a> (rede de distribui&ccedil;&atilde;o de conte&uacute;dos) diretamente no seu arquivo HTML. Para come&ccedil;ar o processo, navegue at&eacute; a p&aacute;gina HTML na qual voc&ecirc; deseja adicionar o React.&nbsp;<\/p><p>Insira uma etiqueta (tag) &lt;div&gt; vazia, em branco. Isso vai criar um container no qual voc&ecirc; pode renderizar um componente. No exemplo deste tutorial, vamos considerar que estamos tentando criar um bot&atilde;o.&nbsp;<\/p><p>Depois, insira tr&ecirc;s tags de &lt;script&gt; na p&aacute;gina antes de fechar a tag &lt;\/body&gt;. As duas primeiras ser&atilde;o utilizadas para carregar o React, e a terceira dessas etiquetas de script ir&aacute; carregar o c&oacute;digo do seu componente &ndash; neste nosso exemplo, um bot&atilde;o.&nbsp;<\/p><p>Agora, na mesma pasta em que est&aacute; sua p&aacute;gina HTML, crie um novo arquivo e nomeie ele como <strong>button.js<\/strong> (ou qualquer nome que seja relevante, considerando o elemento que voc&ecirc; est&aacute; querendo adicionar. Button neste caso &eacute; referente ao bot&atilde;o que desejamos criar). Dentro deste arquivo, copie e cole o seguinte c&oacute;digo:<\/p><pre class=\"wp-block-preformatted\">'use strict';\n\nconst e = React.createElement;\n\nclass Button extends React.Component {\n\n&nbsp;constructor(props) {\n\n&nbsp;&nbsp;&nbsp;super(props);\n\n&nbsp;&nbsp;&nbsp;this.state = { clicked: false };\n\n&nbsp;}\n\n&nbsp;render() {\n\n&nbsp;&nbsp;&nbsp;if (this.state.clicked) {\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 'You pressed this button.';\n\n&nbsp;&nbsp;&nbsp;}\n\n&nbsp;&nbsp;&nbsp;return e(\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'button',\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ onClick: () =&gt; this.setState({ clicked: true }) },\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Press Me'\n\n&nbsp;&nbsp;&nbsp;);\n\n&nbsp;}\n\n}<\/pre><p>Esse c&oacute;digo vai construir um componente de bot&atilde;o que exibe uma mensagem quando um usu&aacute;rio clica nele. Para usar esse bot&atilde;o em sua p&aacute;gina HTML, voc&ecirc; pode adicionar o seguinte fragmento de c&oacute;digo ao final do arquivo rec&eacute;m criado, o <strong>button.js<\/strong>:<\/p><pre class=\"wp-block-preformatted\">const domContainer = document.querySelector('#button_container');\n\nReactDOM.render(e(Button), domContainer);<\/pre><p>Esse c&oacute;digo faz a conex&atilde;o com o container &lt;div&gt; que voc&ecirc; adicionou anteriormente na p&aacute;gina HTML, e ent&atilde;o faz a renderiza&ccedil;&atilde;o do componente de bot&atilde;o React.&nbsp;<\/p><p>Voc&ecirc; tamb&eacute;m pode utilizar o React para criar, do zero, um app React em branco. A melhor maneira de fazer isso &eacute; utilizando a solu&ccedil;&atilde;o Create React App que comentamos anteriormente. Ela pode ser muito &uacute;til para aplica&ccedil;&otilde;es de uma &uacute;nica p&aacute;gina.&nbsp;<\/p><p>Para dar in&iacute;cio nesse processo, voc&ecirc; pode rodar o seguinte comando em seu terminal:<\/p><pre class=\"wp-block-preformatted\">npx create-react-app my-app<\/pre><p>Note que voc&ecirc; pode alterar o &ldquo;my-app&rdquo; para qualquer nome que deseja dar ao seu app. Para rod&aacute;-lo, basta navegar at&eacute; a pasta do app atrav&eacute;s do comando cd my-app seguido por npm start.<\/p><p>Ent&atilde;o o app ir&aacute; rodar no modo desenvolvedor. Voc&ecirc; pode visualiz&aacute;-lo em seu navegador pelo endere&ccedil;o <strong>http:\/\/localhost:3000<\/strong>.<\/p><h2 class=\"wp-block-heading\" id=\"h-conclusao\"><strong>Conclus&atilde;o<\/strong><\/h2><p>Desenvolver projetos WordPress em React pode ser um processo simples e direto, mesmo se voc&ecirc; for um iniciante nesse universo. De todo modo, para fazer isso com sucesso, &eacute; muito importante aprender como o framework JavaScript funciona com esse CMS e com a REST API dele.&nbsp;<\/p><p>Felizmente, com um conhecimento b&aacute;sico de JavaScript, HTML e CSS, voc&ecirc; consegue aprender as funcionalidades do React rapidamente. Como discutimos nesse artigo, voc&ecirc; pode usar o React para criar temas, templates de p&aacute;ginas personalizadas e aplica&ccedil;&otilde;es de uma &uacute;nica p&aacute;gina.&nbsp;<\/p><p>Esperamos que este guia tenha te ajudado a entender melhor o React e suas possibilidades de desenvolvimento web com o WordPress.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>O WordPress &eacute; um poderoso Sistema de Gerenciamento de Conte&uacute;do (CMS) que permite que voc&ecirc; construa qualquer site na internet, desde simples blogs at&eacute; complexas lojas virtuais. Para integrar o c&oacute;digo PHP da plataforma com o JavaScript, voc&ecirc; pode aproveitar os recursos de WP REST API e WordPress React. Desenvolvido pelo Facebook, o React &eacute; [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/br\/tutoriais\/wordpress-react\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":305,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"","rank_math_description":"Confira nosso guia completo para aprender a integrar essa que \u00e9 uma das mais populares bibliotecas de JavaScript do mundo com o CMS WordPress.","rank_math_focus_keyword":"","footnotes":""},"categories":[4911],"tags":[6568,7470],"class_list":["post-32063","post","type-post","status-publish","format-standard","hentry","category-wordpress","tag-react","tag-wordpress-react"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/wordpress-react","default":0},{"locale":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/wordpress-react","default":0},{"locale":"fr-FR","link":"https:\/\/www.hostinger.com\/fr\/tutoriels\/react-wordpress","default":0},{"locale":"es-ES","link":"https:\/\/www.hostinger.com\/es\/tutoriales\/wordpress-react","default":0},{"locale":"id-ID","link":"https:\/\/www.hostinger.com\/id\/tutorial\/panduan-wordpress-react","default":0},{"locale":"en-UK","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/wordpress-react","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/a-beginners-guide-to-wordpress-react-development-projects","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/a-beginners-guide-to-wordpress-react-development-projects","default":0},{"locale":"es-MX","link":"https:\/\/www.hostinger.com\/mx\/tutoriales\/wordpress-react","default":0},{"locale":"es-CO","link":"https:\/\/www.hostinger.com\/co\/tutoriales\/wordpress-react","default":0},{"locale":"es-AR","link":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wordpress-react","default":0},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wordpress-react","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/wordpress-react","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/wordpress-react","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/wordpress-react","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/wordpress-react","default":0}],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/32063","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/users\/305"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/comments?post=32063"}],"version-history":[{"count":7,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/32063\/revisions"}],"predecessor-version":[{"id":34665,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/32063\/revisions\/34665"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/media?parent=32063"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/categories?post=32063"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/tags?post=32063"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}