{"id":2050,"date":"2026-06-22T13:14:59","date_gmt":"2026-06-22T16:14:59","guid":{"rendered":"https:\/\/desvendandoocodigo.com.br\/?p=2050"},"modified":"2026-06-22T13:15:38","modified_gmt":"2026-06-22T16:15:38","slug":"react-nao-funciona-sem-isso-entenda-import-e-export-de-verdade","status":"publish","type":"post","link":"https:\/\/desvendandoocodigo.com.br\/?p=2050","title":{"rendered":"React N\u00e3o Funciona Sem Isso | Entenda Import e Export de Verdade"},"content":{"rendered":"\n<p>Se voc\u00ea come\u00e7ou a estudar React, provavelmente j\u00e1 se deparou com algo parecido com isso:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import Header from \".\/Header\"\n<\/code><\/pre>\n\n\n\n<p>ou:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>export default App\n<\/code><\/pre>\n\n\n\n<p>E talvez tenha pensado:<\/p>\n\n\n\n<p><strong>&#8220;O que \u00e9 isso?&#8221;<\/strong><\/p>\n\n\n\n<p>Antes de aprender componentes, props e useState, existe um conceito fundamental do JavaScript moderno que voc\u00ea precisa entender:<\/p>\n\n\n\n<p><strong>Modula\u00e7\u00e3o.<\/strong><\/p>\n\n\n\n<p>\u00c9 ela que permite dividir o c\u00f3digo em arquivos menores, reaproveitar fun\u00e7\u00f5es e manter os projetos organizados.<\/p>\n\n\n\n<p>E \u00e9 justamente por isso que React n\u00e3o funciona sem import e export.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Precisa aprender JavaScript antes de React?<\/h1>\n\n\n\n<p>Voc\u00ea n\u00e3o precisa ser especialista em JavaScript para estudar React.<\/p>\n\n\n\n<p>Mas ter uma boa base vai facilitar muito.<\/p>\n\n\n\n<p>Afinal, React \u00e9 uma biblioteca JavaScript.<\/p>\n\n\n\n<p>Os componentes, fun\u00e7\u00f5es, eventos e estados utilizam conceitos do pr\u00f3prio JavaScript.<\/p>\n\n\n\n<p>Por isso, entender import e export vai economizar muitas horas de confus\u00e3o.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">O que \u00e9 modula\u00e7\u00e3o?<\/h1>\n\n\n\n<p>Modula\u00e7\u00e3o \u00e9 a capacidade de dividir um sistema em partes menores.<\/p>\n\n\n\n<p>Em vez de colocar tudo em um \u00fanico arquivo gigante, podemos separar:<\/p>\n\n\n\n<ul>\n<li>fun\u00e7\u00f5es;<\/li>\n\n\n\n<li>objetos;<\/li>\n\n\n\n<li>componentes;<\/li>\n\n\n\n<li>regras de neg\u00f3cio;<\/li>\n\n\n\n<li>valida\u00e7\u00f5es.<\/li>\n<\/ul>\n\n\n\n<p>Depois, reutilizamos essas partes em outros lugares.<\/p>\n\n\n\n<p>Isso torna o c\u00f3digo:<\/p>\n\n\n\n<p>\u2705 Mais organizado.<\/p>\n\n\n\n<p>\u2705 Mais reutiliz\u00e1vel.<\/p>\n\n\n\n<p>\u2705 Mais f\u00e1cil de manter.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">O que \u00e9 export default?<\/h1>\n\n\n\n<p>Imagine que temos uma fun\u00e7\u00e3o:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function mensagem() {\n    return \"Ol\u00e1!\"\n}\n<\/code><\/pre>\n\n\n\n<p>Podemos exportar essa fun\u00e7\u00e3o:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>export default mensagem\n<\/code><\/pre>\n\n\n\n<p>E depois import\u00e1-la em outro arquivo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import mensagem from \".\/mensagem.js\"\n<\/code><\/pre>\n\n\n\n<p>Uma vantagem do export default \u00e9 que podemos utilizar praticamente qualquer nome na importa\u00e7\u00e3o.<\/p>\n\n\n\n<p>Por exemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import saudacao from \".\/mensagem.js\"\n<\/code><\/pre>\n\n\n\n<p>Mesmo mudando o nome, o c\u00f3digo continuar\u00e1 funcionando.<\/p>\n\n\n\n<p>Por isso, geralmente utilizamos o export default quando existe apenas um elemento principal no arquivo.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">O que s\u00e3o Named Exports?<\/h1>\n\n\n\n<p>Quando queremos exportar v\u00e1rias fun\u00e7\u00f5es, utilizamos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>export function soma() {}\nexport function multiplicar() {}\n<\/code><\/pre>\n\n\n\n<p>E depois importamos utilizando chaves:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import { soma, multiplicar } from \".\/matematica.js\"\n<\/code><\/pre>\n\n\n\n<p>Diferentemente do export default, aqui os nomes precisam ser respeitados.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Alias: mudando o nome da fun\u00e7\u00e3o<\/h1>\n\n\n\n<p>Tamb\u00e9m podemos utilizar um apelido (alias):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import {\n    tamanho as strLength,\n    maiusculo as strUpper\n}\n<\/code><\/pre>\n\n\n\n<p>Isso \u00e9 muito parecido com o alias utilizado em SQL.<\/p>\n\n\n\n<p>Esse recurso \u00e9 \u00fatil quando:<\/p>\n\n\n\n<ul>\n<li>os nomes s\u00e3o grandes;<\/li>\n\n\n\n<li>queremos tornar o c\u00f3digo mais leg\u00edvel;<\/li>\n\n\n\n<li>precisamos evitar conflitos entre nomes.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Misturando Export Default e Named Exports<\/h1>\n\n\n\n<p>Tamb\u00e9m podemos utilizar os dois juntos.<\/p>\n\n\n\n<p>Por exemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>export default criarUsuario\n\nexport function validarIdade() {}\n\nexport function capitalizar() {}\n<\/code><\/pre>\n\n\n\n<p>E importar assim:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import criarUsuario, {\n    validarIdade,\n    capitalizar\n} from \".\/usuario.js\"\n<\/code><\/pre>\n\n\n\n<p>Essa combina\u00e7\u00e3o \u00e9 extremamente comum em projetos React.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Criando objetos com m\u00f3dulos<\/h1>\n\n\n\n<p>Uma das partes mais interessantes da aula foi a cria\u00e7\u00e3o do objeto usu\u00e1rio.<\/p>\n\n\n\n<p>Em vez de trabalhar com vari\u00e1veis soltas, agrupamos informa\u00e7\u00f5es relacionadas:<\/p>\n\n\n\n<ul>\n<li>nome;<\/li>\n\n\n\n<li>idade.<\/li>\n<\/ul>\n\n\n\n<p>Isso nos permite trabalhar com objetos e representar melhor as entidades do sistema.<\/p>\n\n\n\n<p>\u00c9 exatamente assim que sistemas profissionais s\u00e3o constru\u00eddos.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Corrigindo erros faz parte do desenvolvimento<\/h1>\n\n\n\n<p>Durante a aula, alguns erros apareceram.<\/p>\n\n\n\n<p>E isso \u00e9 importante.<\/p>\n\n\n\n<p>Porque programar n\u00e3o significa escrever tudo perfeitamente.<\/p>\n\n\n\n<p>Significa:<\/p>\n\n\n\n<ul>\n<li>testar;<\/li>\n\n\n\n<li>analisar mensagens de erro;<\/li>\n\n\n\n<li>corrigir;<\/li>\n\n\n\n<li>continuar.<\/li>\n<\/ul>\n\n\n\n<p>Inclusive, muitos problemas acontecem por:<\/p>\n\n\n\n<ul>\n<li>nome incorreto do arquivo;<\/li>\n\n\n\n<li>diret\u00f3rio errado;<\/li>\n\n\n\n<li>esquecer o &#8220;.js&#8221;;<\/li>\n\n\n\n<li>confundir slice com splice.<\/li>\n<\/ul>\n\n\n\n<p>Esses erros fazem parte da rotina de qualquer desenvolvedor.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">React utiliza isso o tempo todo<\/h1>\n\n\n\n<p>Quando voc\u00ea escreve:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import Header from \".\/components\/Header\"\n<\/code><\/pre>\n\n\n\n<p>ou:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import { useState } from \"react\"\n<\/code><\/pre>\n\n\n\n<p>est\u00e1 utilizando exatamente os conceitos estudados nesta aula.<\/p>\n\n\n\n<p>Por isso, entender modula\u00e7\u00e3o antes de React \u00e9 um investimento que vale a pena.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">O que voc\u00ea aprendeu<\/h1>\n\n\n\n<p>Nesta aula voc\u00ea viu:<\/p>\n\n\n\n<p>\u2705 O que \u00e9 modula\u00e7\u00e3o.<\/p>\n\n\n\n<p>\u2705 Export Default.<\/p>\n\n\n\n<p>\u2705 Named Exports.<\/p>\n\n\n\n<p>\u2705 Alias.<\/p>\n\n\n\n<p>\u2705 Reutiliza\u00e7\u00e3o de c\u00f3digo.<\/p>\n\n\n\n<p>\u2705 Objetos.<\/p>\n\n\n\n<p>\u2705 Organiza\u00e7\u00e3o de arquivos.<\/p>\n\n\n\n<p>\u2705 Mistura entre export default e named exports.<\/p>\n\n\n\n<p>\u2705 Corre\u00e7\u00e3o de erros comuns.<\/p>\n\n\n\n<p>\u2705 Como tudo isso \u00e9 utilizado no React.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\ud83c\udfa5 V\u00eddeo editado<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">React N\u00e3o Funciona Sem Isso | Entenda Import e Export de Verdade<\/h2>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"React N\u00e3o Funciona Sem Isso | Entenda Import e Export de Verdade\" width=\"960\" height=\"540\" src=\"https:\/\/www.youtube.com\/embed\/4UXwwyEBEsw?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\ud83d\udcfa Live completa<\/h1>\n\n\n\n<p>Quer acompanhar todos os exemplos e entender passo a passo como funciona a modula\u00e7\u00e3o?<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Modula\u00e7\u00e3o com JavaScript Puro em 1 Hora \u2014 A Base que Voc\u00ea Precisa Antes de Aprender React\" width=\"960\" height=\"540\" src=\"https:\/\/www.youtube.com\/embed\/egbsKshyq_M?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Conclus\u00e3o<\/h1>\n\n\n\n<p>Muita gente come\u00e7a estudando React e acaba ficando confusa com import e export.<\/p>\n\n\n\n<p>Mas a verdade \u00e9 que React apenas aproveita um recurso do pr\u00f3prio JavaScript.<\/p>\n\n\n\n<p>Por isso, aprender modula\u00e7\u00e3o \u00e9 aprender uma habilidade que voc\u00ea vai utilizar em praticamente qualquer linguagem de programa\u00e7\u00e3o.<\/p>\n\n\n\n<p>E aqui no Desvendando o C\u00f3digo, acreditamos que aprender programa\u00e7\u00e3o n\u00e3o \u00e9 decorar comandos.<\/p>\n\n\n\n<p>\u00c9 entender como as tecnologias funcionam.<\/p>\n\n\n\n<p>Porque o c\u00f3digo \u00e9 apenas uma consequ\u00eancia.<\/p>\n\n\n\n<p><strong>Eu n\u00e3o ensino programa\u00e7\u00e3o.<\/strong><\/p>\n\n\n\n<p><strong>Eu ajudo as pessoas a entenderem como a tecnologia funciona.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Se voc\u00ea come\u00e7ou a estudar React, provavelmente j\u00e1 se deparou com algo parecido com isso: ou: E talvez tenha pensado: &#8220;O que \u00e9 isso?&#8221; Antes de aprender componentes, props e useState, existe um conceito fundamental do JavaScript moderno que voc\u00ea precisa entender: Modula\u00e7\u00e3o. \u00c9 ela que permite dividir o c\u00f3digo em arquivos menores, reaproveitar fun\u00e7\u00f5es e manter os projetos organizados. E \u00e9 justamente por isso que React n\u00e3o funciona sem import e export. Precisa aprender JavaScript antes de React? Voc\u00ea n\u00e3o precisa ser especialista em JavaScript para estudar React. Mas ter uma boa base vai facilitar muito. Afinal, React \u00e9 uma biblioteca JavaScript. Os componentes, fun\u00e7\u00f5es, eventos e estados utilizam conceitos do pr\u00f3prio JavaScript. Por isso, entender import e export vai economizar muitas horas de confus\u00e3o. O que \u00e9 modula\u00e7\u00e3o? Modula\u00e7\u00e3o \u00e9 a capacidade de dividir um sistema em partes menores. Em vez de colocar tudo em um \u00fanico arquivo gigante, podemos separar: Depois, reutilizamos essas partes em outros lugares. Isso torna o c\u00f3digo: \u2705 Mais organizado. \u2705 Mais reutiliz\u00e1vel. \u2705 Mais f\u00e1cil de manter. O que \u00e9 export default? Imagine que temos uma fun\u00e7\u00e3o: Podemos exportar essa fun\u00e7\u00e3o: E depois import\u00e1-la em outro arquivo: Uma vantagem do export default \u00e9 que podemos utilizar praticamente qualquer nome na importa\u00e7\u00e3o. Por exemplo: Mesmo mudando o nome, o c\u00f3digo continuar\u00e1 funcionando. Por isso, geralmente utilizamos o export default quando existe apenas um elemento principal no arquivo. O que s\u00e3o Named Exports? Quando queremos exportar v\u00e1rias fun\u00e7\u00f5es, utilizamos: E depois importamos utilizando chaves: Diferentemente do export default, aqui os nomes precisam ser respeitados. Alias: mudando o nome da fun\u00e7\u00e3o Tamb\u00e9m podemos utilizar um apelido (alias): Isso \u00e9 muito parecido com o alias utilizado em SQL. Esse recurso \u00e9 \u00fatil quando: Misturando Export Default e Named Exports Tamb\u00e9m podemos utilizar os dois juntos. Por exemplo: E importar assim: Essa combina\u00e7\u00e3o \u00e9 extremamente comum em projetos React. Criando objetos com m\u00f3dulos Uma das partes mais interessantes da aula foi a cria\u00e7\u00e3o do objeto usu\u00e1rio. Em vez de trabalhar com vari\u00e1veis soltas, agrupamos informa\u00e7\u00f5es relacionadas: Isso nos permite trabalhar com objetos e representar melhor as entidades do sistema. \u00c9 exatamente assim que sistemas profissionais s\u00e3o constru\u00eddos. Corrigindo erros faz parte do desenvolvimento Durante a aula, alguns erros apareceram. E isso \u00e9 importante. Porque programar n\u00e3o significa escrever tudo perfeitamente. Significa: Inclusive, muitos problemas acontecem por: Esses erros fazem parte da rotina de qualquer desenvolvedor. React utiliza isso o tempo todo Quando voc\u00ea escreve: ou: est\u00e1 utilizando exatamente os conceitos estudados nesta aula. Por isso, entender modula\u00e7\u00e3o antes de React \u00e9 um investimento que vale a pena. O que voc\u00ea aprendeu Nesta aula voc\u00ea viu: \u2705 O que \u00e9 modula\u00e7\u00e3o. \u2705 Export Default. \u2705 Named Exports. \u2705 Alias. \u2705 Reutiliza\u00e7\u00e3o de c\u00f3digo. \u2705 Objetos. \u2705 Organiza\u00e7\u00e3o de arquivos. \u2705 Mistura entre export default e named exports. \u2705 Corre\u00e7\u00e3o de erros comuns. \u2705 Como tudo isso \u00e9 utilizado no React. \ud83c\udfa5 V\u00eddeo editado React N\u00e3o Funciona Sem Isso | Entenda Import e Export de Verdade \ud83d\udcfa Live completa Quer acompanhar todos os exemplos e entender passo a passo como funciona a modula\u00e7\u00e3o? Conclus\u00e3o Muita gente come\u00e7a estudando React e acaba ficando confusa com import e export. Mas a verdade \u00e9 que React apenas aproveita um recurso do pr\u00f3prio JavaScript. Por isso, aprender modula\u00e7\u00e3o \u00e9 aprender uma habilidade que voc\u00ea vai utilizar em praticamente qualquer linguagem de programa\u00e7\u00e3o. E aqui no Desvendando o C\u00f3digo, acreditamos que aprender programa\u00e7\u00e3o n\u00e3o \u00e9 decorar comandos. \u00c9 entender como as tecnologias funcionam. Porque o c\u00f3digo \u00e9 apenas uma consequ\u00eancia. Eu n\u00e3o ensino programa\u00e7\u00e3o. Eu ajudo as pessoas a entenderem como a tecnologia funciona.<\/p>\n","protected":false},"author":1,"featured_media":2051,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=\/wp\/v2\/posts\/2050"}],"collection":[{"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2050"}],"version-history":[{"count":3,"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=\/wp\/v2\/posts\/2050\/revisions"}],"predecessor-version":[{"id":2055,"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=\/wp\/v2\/posts\/2050\/revisions\/2055"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=\/wp\/v2\/media\/2051"}],"wp:attachment":[{"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2050"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2050"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2050"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}