No arquivo valida-cpf.js, por que precisamos do export? nao poderiamos acessar essa funcao so incluindo o arquivo no index? e porque funcoes como a validaNumerosRepetidos nao recebe o export tambem?
No arquivo valida-cpf.js, por que precisamos do export? nao poderiamos acessar essa funcao so incluindo o arquivo no index? e porque funcoes como a validaNumerosRepetidos nao recebe o export tambem?
Para te ajudar mais, seria possível disponibilizar o código, por gentileza. =)
Eu não fiz esse curso, mas entendo que a modularização é uma forma de organizar o código. Com isso, ao invés de chamar vários arquivos no index.html
, você pode organizá-los melhor numa estrutura que permita e facilite a manutenção. Acredite, isso pode por virar um monstro em projetos grandes.
Então, o export
, neste caso, tem a responsabilidade de expor uma função para que possa ser utilizada em outro arquivo ou em outra parte do código. E, aí então, no arquivo que você deseja onde desejar essa função usar você vai usar a palavra import
. Exemplo:
Arquivo que exporta a função imprimeTexto()
:
//arquivo imprime-texto.js
function imprimeTexto(){
console.log("Este texto é do arquivo exportado");
}
export {
imprimeTexto
}
Arquivo que importa a função imprimeTexto()
:
//arquivo main.js
import { imprimeTexto } from "./imprime-texto.js"
imprimeTexto();
Assim você pode usar as funções em um ou mais lugares da sua aplicação sem ficar duplicando código.
Como me falta contexto de código, vou tentar responder com base do que eu entendi da segunda pergunta.
Geralmente, quando queremos usar uma função apenas dentro de um arquivo e não queremos permitir que essa função seja usada em outros pontos do código, não exportamos ela. Ela fica apenas dentro do escopo do arquivo. Exemplo:
Arquivo que exporta a função imprimeTexto()
, mas não exporta a função naoDigaOi()
:
//arquivo imprime-texto.js
function naoDigaOi(){
console.log("Ok!");
}
function imprimeTexto(){
console.log("Este texto é do arquivo exportado");
}
export {
imprimeTexto
}
Arquivo que importa a função imprimeTexto()
e tenta importa a função naoDigaOi()
:
//arquivo main.js
import { imprimeTexto, naoDigaOi } from "./imprime-texto.js"
imprimeTexto();
naoDigaOi();
Se eu tentar importar ela dentro do main.js
, como no exemplo acima, e atualizar o navegador vai dar um erro no console.
Links para conhecer e saber mais: