Não usar um framework é o mesmo que não codar com DRY (don't repeat yourself) em mente, o framework tem muita coisa pronta, tu não precisar criar um addEventListener pra tudo, não tem problema de tempo de execução entre um listener e o outro no Event Loop, consegue usar o state pra rodar muita coisa na sequência sem precisar vincular tudo novamente em listeners, mas a comunidade tem muito peso, alguns pontos que gostaria de destacar
Pros:
- Na minha cabeça, com react a gente consegue acesso a algumas libs muito legais que não sei se funcionam fora do react, nunca tentei fazer Drag and Drop com js Vanilla mano, mas o react-dnd é bem massa, react-icons sempre me ajuda, fato é que existe uma comunidade já muito grande deixando coisas prontas que aumentam a capacidade do "framework".
- Com react é extremamente simples de migrar para um Next.js, e esse por sua vez me parece meio impossível de fazer com Vanilla, edge computing tem muito valor por velocidade, segue a premissa do:
Slow is the new Down
Cons:
- Muito código vai ser completamente inútil, se for uma aplicação simples não é necessário um
context provider
,useMemo
,useRef
, etc... mas mesmo assim eles serão entregues na build como base do pacote (no final não parece fazer qualquer diferença ter ou não ter eles no bundle). - React por si só não me parece um framework por não resolver todos os problemas, tem muita dificuldade em aproveitar SEO que é uma limitação complicada que não teria no Vanilla certamente, é relativamente pesado comparado com um Angular bem otimizado ou Next.js com entregas em chunks bem definida, apesar de ter o
lazy load
esses outros caras são mais eficientes, em especial Next.js. - O próprio item anterior mostra algo importante, escolher um framework acaba sendo uma tarefa e a pergunta "escolhi o correto?" sempre vai estar lá, que é um contra sem dúvida pra mim.
- Curva de aprendizado e nicho de mercado, nenhum dev sabe todos os frameworks, mas todos deveriam saber javascript puro, logo, assim que escolher um framework os próximos devs plenos ou seniors deverão ser contratados com isso na cabeça, limita os candidatos.
Conclusão
O peso da comunidade nessa tomada de decisão é muito alto, eu iria de framework no final das contas pois eu não quero saber absolutamente tudo do js,html e css pra entregar um novo Blaze da vida, me parece que fazer o Tabnews seria relativamente fácil em desenvolvimento puro, mas um IQOption pra operações binárias com gráficos em tempo real e animações pra todo lado o jogo muda, e resolver aprender o mundo de um framework só na hora que precisar é uma escolha igualmente ruim, logo usar framework quase sempre acaba se pagando pois vai estar mais pronto.
Espero que tenha feito algum sentido...