¿Es el patrón modelo-vista-controlador apropiado (o incluso preferido) para aplicaciones web escritas en Javascript? ¿Por qué?

Lo encuentro bastante útil. Los modelos son para datos y casi siempre es útil desacoplar datos de imágenes. Hacer eso le permite, por ejemplo, trazar los mismos números en una barra o gráfico circular. Simplemente cambia la vista pero el modelo sigue siendo el mismo. Ves esto en Facebook todo el tiempo. Los datos principales son los mismos (publicaciones de texto, etc.) pero se vierten en varios diseños.

Si Quora ha desacoplado su modelo de su vista, podrían renovar por completo el aspecto del sitio sin afectar el texto que la gente ha publicado. Podrían servir ese mismo texto (el modelo) a sitios de escritorio y móviles que se ven completamente diferentes entre sí …

Algo debe enganchar el modelo a la vista. Esto es generalmente la lógica de negocios (también conocido como el controlador). Por ejemplo, el widget upvote / downvote en Quora es una vista. Con suerte, no sabe nada sobre el modelo, que almacena la cantidad de votos a favor y en contra. Y es de esperar que al modelo no le importe cómo se muestran los votos a favor y en contra.

Pero algo debe decirle a la vista que se actualice cuando cambia el número de votos, y algo debe decirle al modelo que aumente o disminuya cuando un usuario hace clic en el widget. Los controladores son geniales, porque son intermediarios y ayudan a que las vistas y los modelos se desacoplen entre sí.

Digamos que los fundadores de Quora decidieron agregar votación a las preguntas. Si el widget está desacoplado, simplemente podría reutilizarlo.

Un vaso (vista) puede tener cualquier tipo de líquido (datos) vertido en él. Al vaso no le importa el líquido. Es solo un receptáculo de uso general. Al líquido no le importa si se vierte en un vaso, una taza o un tazón. Sin embargo, algo (el controlador) tiene que hacer el vertido.

Yo diría que la mayoría de los sitios web son, en su “estado natural”, ya MVC o algo similar. El modelo es la base de datos en el back-end, la vista es HTML y CSS, y el controlador es Javascript. Puede crear sitios web que no se ajusten a este patrón y, por supuesto, puede tener patrones mini-MVC dentro del Javascript mismo (y otros en el backend, menos la vista en la mayoría de los casos), pero sin siquiera esforzarse, es bastante Es natural pensar en términos de MVC al construir un sitio web.

More Interesting

JavaScript (lenguaje de programación): ¿Qué incluiría su pila de Javascript de ahora en adelante para una aplicación web con uso intensivo de datos?

¿Cuál es la mejor aplicación web para colores?

Cómo probar la función de inicio de sesión de una aplicación web

¿Existe un marco web no apto para desarrolladores?

Se ve en los libros de texto que dicen nuestros maestros que Java es la base de Internet y es un lenguaje importante para el desarrollo de aplicaciones web. ¿Es tan? La mayor parte de la aplicación web que veo utiliza JavaScript, PHP o Rails y sus marcos.

¿Cuál es la mejor base de datos adecuada con Python para aplicaciones web?

¿Cómo puedo evitar que mi aplicación web se ejecute en los límites de la carpeta?

¿Cuáles son las especificaciones del servidor (RAM, CPU) para aplicaciones web famosas como booking.com, etc.?

Cómo determinar la escalabilidad de mi aplicación web

¿Existe un asistente personal de código abierto para la web, como la extensión Speak to It Chrome que se puede personalizar?

¿Qué sucede si los datos de mi aplicación web crecen muy rápido?

¿Cuáles son las buenas aplicaciones de automatización web que ofrecen procesos de múltiples pasos para OSX a diferencia de IFTTT y Zapier?

¿Cuál es el marco subyacente o qué tecnología se utiliza para construir WhatsApp Web?

¿Sigue siendo PHP un buen lenguaje de programación para desarrollar aplicaciones web o existen mejores alternativas (2015)?

¿Es legal hacer cuentas falsas de celebridades en un video promocional?