Estoy en la fase de planificación de una aplicación web React y no puedo decidirme por una arquitectura correcta. La aplicación My React contendrá algunas funciones, como:
Al comienzo del proyecto, todo estará bajo 1 aplicación React, pero más tarde (hora desconocida), tendré que dividir cada "sistema" en otra aplicación.
Me gustaría evitar el código duplicado y hacer que cada "sistema" sea independiente del otro, para poder dividirlo más tarde con facilidad y una refactorización mínima.
Se construirá sobre la infraestructura de Microsoft Teams, como una aplicación de una sola pestaña, y luego tendré que implementarlo como 1 sistema por pestaña, cada pestaña se puede representar como un componente de React, esta es la razón de eso y este es un deber.
No hay una forma definitiva de resolver esto. El mejor enfoque es simplemente hacer que los componentes sean lo más modulares posible. Si es posible, use mecanografiado ya que hace la vida menos difícil más adelante.
Tal vez eche un vistazo a Nx . Es un gran marco para generar sub-bibliotecas y sub-aplicaciones en su código frontend y así modularizar su código. Puede haber otras bibliotecas similares por ahí. Usé Nx para crear una aplicación móvil y de escritorio, reutilizando algo de lógica y algunos componentes, pero no todo. Además, puede restringir el acceso entre sus bibliotecas.
También le brindan una guía sobre las mejores prácticas para asegurarse de que su aplicación se mantenga modular.
Simplemente decir "Bueno, solo use componentes, duh", en mi humilde opinión, no es suficiente.