App com components em VanillaJS #1507
Replies: 9 comments
-
Um componente é basicamente um pedaço de lógica + estado + elementos de interface. Qual é a motivação pra você fazer isso com componentes? Se você vai retornar somente HTML strings dos seus componentes, por que não utilizar HTML direto? Se você tiver lógica dentro deles (conditional rendering, eventos, etc), aí sim vale a pena, mas tem bastante coisa que vai tornar a tarefa mais difícil do que parece, como:
Há algumas alternativas ao React que são bem mais leves como Preact e Inferno. VueJS vai ficar bem mais similar na versão 3.0, mas deve levar mais uns meses pra sair. |
Beta Was this translation helpful? Give feedback.
-
Vale a pena tentar. Já fiz alguns projetos inteiros usando template literals para gerar o HTML, funciona perfeitamente. Voce vai precisar manjar de alguns conceitos de arquitetura pra botar tudo junto, mas vale a pena sim, e é divertido e fácil. Depois que fizer isso, vai enxergar os frameworks com muito mais maturidade, além do domínio da linguagem (que é o que importa). |
Beta Was this translation helpful? Give feedback.
-
Você pode fazer isso criando funções que retornam strings de components. Lembrando que desse jeito você você não cria estados, só um template de html reaproveitável:
Ou você pode usar o ejs junto com o Webpack, WebpackHtmlPlugin e ejs-loader e importar arquivos de templates de ejs dentro do seu html.
|
Beta Was this translation helpful? Give feedback.
-
Eu já tentei brincar com algo parecido com isto https://github.com/evertonthepaula/MarvelAPI, se você olhar no diretório "src" verá que dividi as coisas entre estructures( templates e views) e widgets. Hoje eu faria um pouco diferente, tem muita coisa que quero mudar nesse repositório, mas eu gostei bastante do resultado final. Se eu fosse te dar três dicas seriam: 1 - Aprenda sobre módulos Javascript |
Beta Was this translation helpful? Give feedback.
-
Por módulos eu entendo que você queira dizer componentes... a grosso modo, sim, seria. É claro que quanto mais você tenta se aproximar de uma lib como o React com JS puro, mais complexo seu código vai ficando. Mas reforçando o que o @bernardodiasc disse, só com template literals e uns |
Beta Was this translation helpful? Give feedback.
-
fala amigo boa tarde o conceito que eu quero e justamente esse poder reaproveitar o html, so queria saber se isso se aproxima do conceito de componentes do reactjs, eu nao queria usar react nos meus projetos, queria fazer td com vanilla, inclusive estou usando o vanilla router para as rotas, mais pelo que eu vi eu estaria reinventando a roda, seria uma logica mt mais complexa de ser compreendida, no caso irei criar so esse app para estudos msm e depois ja irei começar a estudar react pq pelo que eu vejo n tem como se livrar do react |
Beta Was this translation helpful? Give feedback.
-
Cara então usa Web Components nativos: https://developers.google.com/web/fundamentals/web-components/?hl=pt-br Cara se você ta começando não entra nessa viajem de: "eu tenho que usar ferramenta X", é ótimo aprender React mas você tem que aprender conceito, conceitos são mais importantes que qualquer coisa. |
Beta Was this translation helpful? Give feedback.
-
Oi @fernandoRj Sim, eu acho bem interessante fazer isso para servir de aprendizado mas sim você estaria reinventando a roda hahaha é melhor aprender algum framework que faça isso, react, vue ou so o web components mesmo. Eu estou tendo que fazer algo pareciso só com vanilla em um projeto mas foi porque achei o sistema era algo simples e depois virou um monstro haha (Eu deveria ter feito com React desde o início) |
Beta Was this translation helpful? Give feedback.
-
Talvez seja importante aprender sobre Web Components, mas lembre-se que há muitas desvantagens. Leia mais em https://dev.to/richharris/why-i-don-t-use-web-components-2cia. Claro que há vantagens também, e é seu papel decidir se a ferramenta se encaixa bem no seu produto (https://dev.to/ionic/why-we-use-web-components-2c1i). |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Fala pessoal boa noite, gostaria de saber se eu separar meu site por modulo (ex: header,content,footer,sidebar) e dentro desses modulos add os componentes de uma forma basica msm, somente uma funçao que contem uma variavel com o html e retorna esse html e depois pegar todas essas partes e importar para o arquivo principal, isso seria equivalente aos modulos do reactjs?
Beta Was this translation helpful? Give feedback.
All reactions