Interactive pricing component w/ (React + Styled Components) đšâđ»
Design comparison
Solution retrospective
Hello everybody! đ This is my solution for Interactive pricing component!
This was my first contact with React, Parcel and styled components!
I really liked the efficiency and simplicity of parcel, about styled-components I would like to know if the folder organization is good, despite having read a little about it, I still have doubts about the best ways to organize the files!
I thought it was really cool to develop this project with react, despite being a small and simple project, it was perfect to practice a little with new tools.
Feel free to leave feedback on how I can improve my code. đ
Thanks!
Community feedback
- @vandermsPosted almost 2 years ago
Parabéns pela sua solução, Adriano! O seu aplicativo ficou muito legal.
Quanto a sua pergunta sobre a organização dos arquivos, o fato Ă© que React nĂŁo Ă© opinativo sobre isso, entĂŁo o desenvolvedor tem muita liberdade sobre como organizar os arquivos. Eu, particularmente, gostei da forma que vocĂȘ organizou e achei superlegĂvel.
A parte isso, o principal problema na sua solução é que quando a gente trabalha com React - e outros frameworks e bibliotecas do mesmo tipo - a gente não pode manipular diretamente o DOM. Eu me refiro ao uso de getElementById, target.style.backgroundSize e innerText na sua função handleChangeInput.
Hå vårias razÔes para não se fazer isso e isso pode trazer vårias dores de cabeça. Por exemplo, se a aplicação fosse maior e, por alguma razão, houvesse um repaint do seu component <Pricing/> todos os dados inseridos pelo usuårio seriam perdidos (isso ocorreria porque os dados alterados pelo innerText não estariam sincronizados com os dados do virtual DOM do React).
O uso de id tambĂ©m Ă© altamente NĂO recomendĂĄvel, uma vez que isso prejudica a reusabilidade dos componentes. Por exemplo, se vocĂȘ tentasse reutilizar o component <Pricing/> em outro lugar do aplicativo, a pĂĄgina ficaria com duplicidade de ids.
Sobre o tema, de um modo geral, em React, o gerenciamento de estado e a sincronização do estado da aplicação com a interface devem ser realizados com hooks - geralmente useState e, em menor grau, useReducer, associados, ou não, a useContext.
Por fim, um detalhe menor: hĂĄ uma forma mais prĂĄtica de usar React.Fragment, isto Ă©, ao invĂ©s de importar o Fragment e usar <Fragment>...</Fragment>, vocĂȘ poderia ter usado simplesmente <>..... vide https://pt-br.reactjs.org/docs/fragments.html#short-syntax
Marked as helpful1@AdrianoEscarabotePosted almost 2 years ago@vanderms Muito obrigado Vander, os seus comentĂĄrios sempre me ajudam muito!
PrĂłximo projeto colocarei em prĂĄtica tudo que vocĂȘ disse!
0
Please log in to post a comment
Log in with GitHubJoin our Discord community
Join thousands of Frontend Mentor community members taking the challenges, sharing resources, helping each other, and chatting about all things front-end!
Join our Discord