Personalize as preferências de consentimento
Utilizamos cookies para ajudá-lo a navegar com eficiência e executar determinadas funções. Você encontrará informações detalhadas sobre todos os cookies em cada categoria de consentimento abaixo.

Os cookies categorizados como “Necessários” são armazenados no seu navegador, pois são essenciais para ativar as funcionalidades básicas do site.

Também utilizamos cookies de terceiros que nos ajudam a analisar como você usa este site, armazenam suas preferências e fornecem conteúdo e anúncios que são relevantes para você. Estes cookies só serão armazenados no seu navegador com o seu consentimento prévio.

Você pode optar por ativar ou desativar alguns ou todos esses cookies, mas a desativação de alguns deles pode afetar sua experiência de navegação.
Sempre ativo

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Não há cookies para exibir.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Não há cookies para exibir.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Não há cookies para exibir.

Performance cookies are used to understand and analyse the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Não há cookies para exibir.

Advertisement cookies are used to provide visitors with customised advertisements based on the pages you visited previously and to analyse the effectiveness of the ad campaigns.

Não há cookies para exibir.

Desenvolvimento

Como automatizar a criação de componentes funcionais em ReactJs

2 de março de 2021

[vc_row][vc_column][vc_column_text]No momento em que estamos “codando”, diversas vezes nos encontramos em situações em que sentimos que há uma certa repetição em algumas tarefas e isso torna o processo de criação um pouco menos interessante, além de ser contra produtivo. Uma forma de solucionar esse problema é automatizando a criação de componentes funcionais em ReactJS.  

[adrotate banner=”4″]

Isso porque, quando tratamos de ReactJs, vemos essa repetição constantemente na criação componentes, sendo eles funcionais ou de classes. Então, que tal se pudéssemos automatizar este processo, criando estes elementos que em sua estrutura inicial são tão semelhantes?

Agora, a boa notícia! Podemos! E utilizando uma biblioteca livre chamada Plop, disponibilizada neste link: https://plopjs.com/.

Configurando o Plop para automatizar componentes funcionais em ReactJs

Antes de tudo, para iniciar este breve tutorial de como utilizar esta biblioteca em projetos utilizando ReactJs, criei um projeto básico com create-react-app. Partiremos daí.

Por isso, começaremos com a instalação local no projeto utilizando o yarn (caso queira, pode utilizar o npm, fazendo as devidas conversões na hora de digitar seus comandos).

lista de componentes funcionais em ReactJS

Agora, na raiz do projeto, criaremos uma pasta de nome “generators” e esta deve conter uma pasta chamada “templates” e um arquivo javascript de nome “plopfile.js”.

Portanto, a estrutura deve ficar assim:

Componentes funcionais em ReactJS parte 2

Agora, configuraremos o nosso script no arquivo “package.json”. Em scripts, colocaremos o seguinte comando:

“generate”: “yarn plop –plopfile ./generators/plopfile.js”

Componentes funcionais em ReactJS parte 3

Já em nosso arquivo plopfile.js, faremos a seguinte configuração:

Componentes funcionais em ReactJS parte 4

No prompt, temos um array contendo um objeto, com algumas propriedades: “type” será o tipo de comando que será entrado, “name” será o nome do componente e “message” é a mensagem que será exibida ao usuário.

Abaixo, temos as actions que tem um array contendo alguns objetos, os quais contêm algumas propriedades:

  • “type” é o tipo de ação que será executada ao gerar;
  • “path” será o caminho do objeto gerado;
  • “templateFile” será nosso arquivo de modelo.

Em nosso exemplo, vamos utilizar a geração de um arquivo jsx (nosso componente funcional) e um arquivo js (nosso componente de estilização).

Criando templates personalizados em componentes funcionais em ReactJs

Dentro da pasta “templates”, crie dois arquivos: um sendo “Component.jsx.hbs” e um “styles.js.hbs”

Componentes funcionais em ReactJS parte 5

No template de component teremos o seguinte conteúdo:

Componentes funcionais em ReactJS parte 6

E nome template de estilo temos:

Componentes funcionais em ReactJS parte 7

Gerando os arquivos

Finalmente colocaremos a mão na massa!

Agora, é só ir no terminal e digitar o comando “yarn generate” e apertar “enter”. O prompt perguntará qual o nome do seu componente e pronto!

Foram gerados dois arquivos na pasta “components”, como definido no “path”.

O componente “button” com suas exportações:

Componentes funcionais em ReactJS parte 8

Arquivo de estilização:

Componentes funcionais em ReactJS parte 9

Viu só? Com alguns minutinhos de configuração podemos poupar tempo criando os mesmos arquivos toda vez! O melhor de tudo isso é que podemos criar arquivos completamente customizados. Então, em projetos mais complexos podemos ter muito mais que somente um componente e um arquivo de estilos. Assim, podemos criar estruturas de testes, arquivos de “storybook” e uma infinidade mais. 

Neste exemplo, utilizei a biblioteca de estilos “styled components”. Entretanto, é possível utilizar o css de forma pura, assim como sass. 

 

Por fim, leia também:

Biblioteca de artigos sobre Front End

Como Aplicar o Design Pattern Strategy

SEO – Search Engine Optimization[/vc_column_text][/vc_column][/vc_row]

[adrotate banner=”5″]

Imagem padrão

Autor

Julia Ilkiu

Artigos relacionados

Receba nossa
newsletter

Assine nossa newsletter e receba as últimas
novidades sobre o mundo da tecnologia.

    Eu autorizo a Luby a usar meus dados para o envio de conteúdos personalizados.