Esta es una comparación de frameworks web para el desarrollo web front-end que dependen del código JavaScript para su funcionamiento.
información general
Comparación de marcos de alto nivel
Los frameworks de aplicaciones web basados en JavaScript, como React y Vue , ofrecen amplias capacidades, pero también conllevan ciertas desventajas. Estos frameworks suelen extender o mejorar las funcionalidades disponibles a través de tecnologías web nativas, como el enrutamiento, el desarrollo basado en componentes y la gestión del estado. Si bien los estándares web nativos, incluidos los Web Components , las API modernas de JavaScript como Fetch y los módulos ES , y las funcionalidades del navegador como Shadow DOM , han avanzado significativamente, los frameworks siguen siendo ampliamente utilizados por su capacidad para mejorar la productividad de los desarrolladores, ofrecer patrones estructurados para aplicaciones a gran escala, simplificar el manejo de casos límite y proporcionar herramientas para la optimización del rendimiento. [ 8 ] [ 9 ] [ 10 ]
Los frameworks pueden introducir capas de abstracción que pueden contribuir a una sobrecarga de rendimiento, tamaños de paquete mayores y una mayor complejidad. Los frameworks modernos, como React 18 y Vue 3, abordan estos desafíos con características como la renderización concurrente, la eliminación de código muerto (tree-shaking) y la hidratación selectiva . Si bien estos avances mejoran la eficiencia de la renderización y la gestión de recursos, sus beneficios dependen del contexto específico de la aplicación y la implementación. Los frameworks ligeros, como Svelte y Preact , adoptan diferentes enfoques arquitectónicos: Svelte elimina por completo el DOM virtual a favor de compilar componentes a código JavaScript eficiente, y Preact ofrece una alternativa mínima y compatible a React. La elección del framework depende de los requisitos de la aplicación, incluyendo la experiencia del equipo, los objetivos de rendimiento y las prioridades de desarrollo. [ 8 ] [ 9 ] [ 10 ]
Una nueva categoría de frameworks web, que incluye enhance.dev, Astro y Fresh, aprovecha los estándares web nativos al tiempo que minimiza las abstracciones y las herramientas de desarrollo. [ 11 ] [ 12 ] [ 13 ] Estas soluciones enfatizan la mejora progresiva , la renderización del lado del servidor y la optimización del rendimiento. Astro renderiza HTML estático por defecto, hidratando solo las partes interactivas. Fresh se centra en la renderización del lado del servidor con cero sobrecarga en tiempo de ejecución. Enhance.dev prioriza los patrones de mejora progresiva mediante Web Components. Si bien estas herramientas reducen la dependencia de JavaScript del lado del cliente al trasladar la lógica a la ejecución en tiempo de compilación o del lado del servidor, todavía utilizan JavaScript cuando es necesario para la interactividad. Este enfoque las hace particularmente adecuadas para aplicaciones críticas en cuanto al rendimiento y centradas en el contenido. [ 8 ] [ 9 ] [ 10 ]
Características
Compatibilidad con navegadores
Notas
- ↑ "Acerca de Enyo JS" . enyojs.com . Consultado el 23 de noviembre de 2014 .
- ↑ "Licencias de Ext JS 7.3.0" . sencha.com . Archivado del original el 9 de enero de 2011. Consultado el 5 de noviembre de 2020 .
- ↑ "Licencia - Javascript, HTML5, widgets jQuery" . jqwidgets.com . Consultado el 17 de diciembre de 2015 .
- 1 2 3 4 5 script.aculo.us es un complemento para Prototype.
- ↑ "OpenUI5" . GitHub . Consultado el 22 de diciembre de 2020 .
- ↑ "Biblioteca de componentes de interfaz de usuario JavaScript Webix - Licencias" . webix.com . Consultado el 1 de junio de 2022 .
- ↑ "ZK - Marco de trabajo web Java empresarial líder" . ZK - Marco de trabajo web Java . Consultado el 1 de junio de 2022 .
- 1 2 3 Uzayr, Sufyan bin; Cloud, Nicholas; Ambler, Tim (noviembre de 2019). JavaScript Frameworks for Modern Web Development: The Essential Frameworks, Libraries, and Tools to Learn Right Now . Apress. ISBN 978-1484249949.
- 1 2 3 Rojas, Carlos (13 de noviembre de 2020). Creación de componentes web nativos: Desarrollo front-end con Polymer y Vue.js. Apress. ISBN 978-1484259047.
- 1 2 3 Scherer, Justin (28 de febrero de 2020). Hands-On JavaScript High Performance: Build faster web apps using Node.js, Svelte.js, and WebAssembly . Packt Publishing, Limited. ISBN 978-1838821098.
- ↑ "Mejorar" . GitHub .
- ↑ "Astro framework" . GitHub .
- ↑ "Fresco" . GitHub .
- ↑ Muchos prefieren la detección de características a la detección de navegadores para dar soporte a futuros navegadores: Detección de navegadores (y qué hacer en su lugar) , Detección de características: Scripting de navegadores de última generación , Detección de características de navegadores . Archivado el 10 de julio de 2017 en Wayback Machine.
- ↑ "dojo/has – El kit de herramientas Dojo - Guía de referencia" . dojotoolkit.org .
- ^ " Ext JS 7.3.0 - Documentos Sencha " . docs.sencha.com .
- ↑ "Archivo de Google Code: almacenamiento a largo plazo para el alojamiento de proyectos de Google Code" . code.google.com .
- ↑ "Grupos de Google" . google.com .
{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace ) - ↑ jquery.org, Fundación jQuery - (14 de enero de 2009). "jQuery 1.3 lanzado - Blog oficial de jQuery" . docs.jquery.com .
- ↑ "Blog de MooTools: MooTools Core 1.3 Estable y MooTools More 1.3RC" . mootools.net .
- ↑ Detección de características en todo momento. Archivado el 21 de abril de 2009 en Wayback Machine.
- ↑ kangax (5 de abril de 2010). "¿Qué tiene de malo extender el DOM?" . Consultado el 6 de abril de 2010 .
- ↑ "Documentación principal de MooTools" . mootools.net .
- ↑ "Documentación de la API de Prototype - Elemento (URL obsoleta)" . prototypejs.org .
- ↑ "Prototype 2.0 no extenderá el DOM - Ajaxian" . ajaxian.com . 17 de noviembre de 2015.
- 1 2 AJAX y Dojo Archivado el 9 de febrero de 2010 en Wayback Machine
- 1 2 "Adaptador de datos jQuery" . jqwidgets.com . Consultado el 17 de diciembre de 2015 .
- 1 2 "Documentación principal de MooTools" . mootools.net .
- ↑ Schäfer, Holger (25 de enero de 2014). "Desarrollador de OpenUI5: Ejemplo sencillo de servidor de chat usando UI5 WebSocket" .
- ↑ "WebSockets (Faye) de las guías, interacción con la documentación de Webix del lado del servidor" . docs.webix.com . Archivado del original el 3 de agosto de 2018. Consultado el 25 de noviembre de 2016 .
- 1 2 "CometD JavaScript | cometd.org" . Archivado del original el 19 de septiembre de 2010. Recuperado el 7 de octubre de 2010 .
- ↑ "kembuco/extjs-cometd" . GitHub . 8 de julio de 2020.
- ↑ "Archivo de Google Code: almacenamiento a largo plazo para el alojamiento de proyectos de Google Code" . code.google.com .
- ↑ "ZK - Soluciones Ajax empresariales líderes" .
- ↑ "Dojox/Datos - DojoCampus - Documentación" . Archivado del original el 17 de marzo de 2009. Consultado el 23 de abril de 2009 .
- ↑ "Dojo/DND - DojoCampus - Docs" . Archivado del original el 6 de abril de 2009. Consultado el 23 de abril de 2009 .
- ↑ "fredsa/gwt-dnd" . GitHub . 8 de febrero de 2022.
- ↑ js.foundation, JS Foundation -. "Arrastrable - jQuery UI" . jqueryui.com .
- ↑ "jQuery DragDrop Plugin" . jqwidgets.com . Consultado el 17 de diciembre de 2015 .
- ↑ "Más documentación de MooTools" . mootools.net .
- ^ "SDK de OpenUI5: kit de demostración v2.0" . openui5.hana.ondemand.com .
- ↑ "Compatibilidad con arrastrar y soltar widgets de interfaz de usuario, documentación de Tree Webix" . docs.webix.com .
- ↑ "Dojo/Fx - DojoCampus - Docs" . Archivado del original el 16 de abril de 2009. Consultado el 23 de abril de 2009 .
- ↑ "Documentación principal de MooTools" . mootools.net .
- 1 2 "Exhibición" . showcase.sproutcore.com .
- ↑ "transición: • Docs • Svelte" .
- ↑ "Dojox/Fx - DojoCampus - Docs" . Archivado del original el 4 de marzo de 2009. Consultado el 23 de abril de 2009 .
- ↑ "Referencia de la API de Enyo" . enyojs.com . Archivado del original el 20 de diciembre de 2013. Consultado el 1 de agosto de 2012 .
- ↑ "Documentación principal de MooTools" . mootools.net .
- ↑ "Animación de guías, estilos y animación de la documentación de Webix" . docs.webix.com .
- ↑ "Dojo/Atrás - DojoCampus - Documentación" . Archivado del original el 2 de abril de 2009. Consultado el 23 de abril de 2009 .
- ↑ "Visor de API de Enyo" . enyojs.com . Archivado del original el 24 de marzo de 2016. Consultado el 24 de abril de 2014 .
- ↑ "Desde la versión 2.2" . Archivado del original el 29 de diciembre de 2010. Consultado el 11 de septiembre de 2010 .
- ↑ Asual. "Asual" . asual.com .
- ↑ "cpojer/mootools-history" . GitHub . 10 de octubre de 2021.
- ↑ "Dijit/Formulario - DojoCampus - Documentación" . Archivado del original el 3 de abril de 2009. Consultado el 23 de abril de 2009 .
- ↑ "Validación de entrada con GWT" . Archivado del original el 20 de julio de 2011. Consultado el 11 de octubre de 2018 .
- ↑ js.foundation, JS Foundation -. "Registro de plugins de jQuery" . plugins.jquery.com .
- ↑ "Validador jQuery" . jqwidgets.com . Consultado el 17 de diciembre de 2015 .
- ↑ "Validación de datos de guías, gestión de datos en un componente Webix Docs" . docs.webix.com .
- ↑ "Entradas de texto formateadas de controles de interfaz de usuario, documentación de Webix" . docs.webix.com .
- ↑ "Dojox/Grid - DojoCampus - Docs" . Archivado del original el 23 de abril de 2009. Consultado el 23 de abril de 2009 .
- ↑ "jqGrid ShieldUI jQuery Grid" .
- ↑ "jQuery Grid, JavaScript Grid, jqxGrid, DataGrid, jQuery DataGrid" . jqwidgets.com . Consultado el 17 de diciembre de 2015 .
- ↑ "Biblioteca JxLib" . Archivado del original el 18 de febrero de 2009. Consultado el 18 de noviembre de 2008 .o "complemento de tabla ordenable" . phatfusion. Archivado del original el 22 de abril de 2009.o "DrasticGrid" . Archivado del original el 15 de abril de 2017. Recuperado el 22 de mayo de 2009 .
- ↑ "Widget de tabla (cuadrícula) JavaScript – Webix HTML DataTable" . webix.com .
- ↑ "Dijit/Árbol - DojoCampus - Documentación" . Archivado del original el 9 de mayo de 2009. Consultado el 23 de abril de 2009 .
- ↑ "Enyo JavaScript Framework - Ejemplo - Ejemplos de código DiscoverSDK" .
- ↑ "Ejemplos de Sencha - Ext JS 7.3.0" . sencha.com . Archivado del original el 12 de mayo de 2014. Consultado el 5 de agosto de 2012 .
- ↑ "vista de árbol" . Archivado del original el 9 de octubre de 2008., "file_tree_viewer" . Archivado del original el 18 de julio de 2008.
- ↑ "jQuery Tree" . jqwidgets.com . Consultado el 17 de diciembre de 2015 .
- ↑ "mootree" . sites.google.com . Archivado del original el 11 de septiembre de 2016. Consultado el 18 de noviembre de 2008 .
- ↑ "Navegador de demostración" . Archivado del original el 2 de abril de 2016. Consultado el 3 de octubre de 2008 .
- ↑ " Tabla de árbol o cuadrícula de árbol: biblioteca HTML5 de Webix con integración de jQuery" . webix.com
- ↑ "Dijit/Editor - DojoCampus - Docs" . Archivado del original el 16 de abril de 2009. Consultado el 23 de abril de 2009 .
- ↑ "Editor HTML" . sencha.com .
- ↑ markitup , jwysiwyg , htmlbox Archivado el 7 de julio de 2009 en Wayback Machine , WYMeditor Archivado el 3 de junio de 2008 en Wayback Machine
- 1 2 "Editor jQuery" . jqwidgets.com . Consultado el 17 de diciembre de 2015 .
- ↑ "MooEditable" . cheeaun.github.com . Archivado del original el 1 de marzo de 2013. Consultado el 19 de septiembre de 2017 .
- ↑ "RichText - Documentación del control RichText: descripción general e inicialización. Webix Docs " . docs.webix.com
- ↑ "Dijit/Form/ComboBox - DojoCampus - Docs" . Archivado del original el 18 de abril de 2009. Consultado el 23 de abril de 2009 .
- ↑ js.foundation, JS Foundation -. "Autocompletar - jQuery UI" . jqueryui.com .
- ↑ "jQuery Input, jQuery Auto Complete" . jqwidgets.com . Consultado el 17 de diciembre de 2015 .
- ↑ "AutoCompleter » digitarald:Harald Kirschner" . digitarald.de . Archivado del original el 23 de octubre de 2017. Consultado el 25 de abril de 2008 .
- ↑ A partir de Dojo 1.3, la API NodeList.addContent() se puede usar para crear contenido, por ejemplo: dojo.query(".note").addContent("h4 NOTE: h4", "before");
- ↑ Elementos de MooTools archivados el 5 de septiembre de 2008 en Wayback Machine
- ↑ UAB, Dinamenta. "Biblioteca de interfaz de usuario JavaScript, componentes Ajax y marco HTML5: creador de temas en línea" . dhtmlx.com .
- ↑ "Blog" . 26 de febrero de 2015.
- ↑ "Personalizando controles GWT con hojas de estilo" . Archivado del original el 12 de septiembre de 2008. Consultado el 17 de marzo de 2015 .
- ↑ js.foundation, JS Foundation -. "ThemeRoller - jQuery UI" . jqueryui.com .
- ↑ "Los mejores frameworks de JavaScript" . 16 de septiembre de 2019.
- ↑ "Ventana jQuery" . jqwidgets.com . Consultado el 17 de diciembre de 2015 .
- 1 2 Uso de la biblioteca MochaUI o JxLib Archivado el 18 de febrero de 2009 en los Archivos Web de la Biblioteca del Congreso
- 1 2 "Un vistazo al desarrollo WYSIWYG con ZK Studio" . Archivado del original el 12 de octubre de 2008. Recuperado el 27 de abril de 2011 .
- ↑ "Archivo de Google Code: almacenamiento a largo plazo para el alojamiento de proyectos de Google Code" . code.google.com .
- ↑ "jQuery Docking Layout" . jqwidgets.com . Consultado el 17 de diciembre de 2015 .
- ↑ "jQuery Splitter" . jqwidgets.com . Consultado el 17 de diciembre de 2015 .
- ↑ "Biblioteca de diseño JavaScript Webix para desarrolladores de aplicaciones web" . webix.com .
- ↑ dojo.gfx Archivado el 9 de marzo de 2009 en Wayback Machine
- ↑ "jCanvas" . jCanvas .
- 1 2 "jQuery Draw Plugin" . jqwidgets.com . Consultado el 17 de diciembre de 2015 .
- ↑ "Mocha UI – MooTools Canvas UI class - Ajaxian" . ajaxian.com . 17 de noviembre de 2015.
- 1 2 "ZK - Soluciones Ajax empresariales líderes" .
- ↑ "Nuevo proyecto de aplicación móvil de Dojo" . 13 de junio de 2010.
- ↑ "Archivo de Google Code: almacenamiento a largo plazo para el alojamiento de proyectos de Google Code" . code.google.com .
- ↑ "jQT" . jQT .
- ↑ "Demostraciones móviles de jQWidgets" . jqwidgets.com . Consultado el 17 de diciembre de 2015 .
- ↑ "cpojer/mootools-mobile" . GitHub . 10 de octubre de 2021.
- ↑ "ZK - Marco de trabajo web Java empresarial líder" . ZK - Marco de trabajo web Java .
- ↑Soporte para dispositivos móviles y tabletas de Webix
- ↑ Todos los frameworks de JavaScript se pueden escribir de forma accesible con una degradación elegante; los frameworks que se muestran aquí, que implican accesibilidad inmediata, han hecho un esfuerzo especial por documentar las mejores prácticas para su framework en particular.
- 1 2 "Quickstart/WritingWidgets/A11y - DojoCampus - Docs" . Archivado del original el 6 de abril de 2009. Recuperado el 23 de abril de 2009 .
- ↑ "Accesibilidad integrada en las aplicaciones GWT 1.5" .
- 1 2 3 "Descripción general de la accesibilidad de jQWidgets" . jqwidgets.com . Consultado el 17 de diciembre de 2015 .
- ↑ El paradigma "Extreme JavaScript" de Qooxdoo. Archivado el 12 de octubre de 2008 en la Wayback Machine.
- ↑ "Accesibilidad de las guías, diseño de la interfaz de usuario de Webix Docs" . docs.webix.com .
- ↑ js.foundation, JS Foundation -. "Acerca de jQuery UI - jQuery UI" . jqueryui.com .
- ↑ "Advertencias del compilador • Documentación • Svelte" .
- ↑ "Accesibilidad de las guías, diseño de la interfaz de usuario de Webix Docs" . docs.webix.com .
- ↑ Creador de olas
- ↑ Estudio Aptana
- ↑ "Blog para desarrolladores de HP webOS" . Archivado del original el 9 de julio de 2012. Consultado el 5 de agosto de 2012 .
- ↑ "Sencha Architect" . 25 de marzo de 2015.
- ↑ "Blog" . 26 de febrero de 2015.
- ↑ «Sencha Ext JS» . 5 de noviembre de 2020.
- ↑ troy.giunipero@sun.com, lloyd.dunn@sun.com. "Uso de jQuery para mejorar la apariencia y la usabilidad de una página web: tutorial de NetBeans" . netbeans.org . Archivado del original el 12 de julio de 2017. Consultado el 9 de febrero de 2010 .
- ↑ js.foundation, JS Foundation -. "Documentación de la API de jQuery" . api.jquery.com .
- ↑ "Creador de temas para jQWidgets" . jqwidgets.com . Consultado el 17 de diciembre de 2015 .
- ↑ "ßeta - jQWidgets Charts Studio" . jqwidgets.com . Consultado el 17 de diciembre de 2015 .
- ↑ "JSEditor" . jqwidgets.com . Consultado el 17 de diciembre de 2015 .
- ↑ "Documentación de MooTools-core" . Archivado del original el 2 de octubre de 2009. Consultado el 14 de octubre de 2009 .
- ↑ "MooTools-more Document" . Archivado del original el 4 de octubre de 2009. Consultado el 14 de octubre de 2009 .
- ↑ Compilación personalizada, enlazador de JS, generación de API, marco de pruebas unitarias, etc. Archivado el 25 de julio de 2008 en Wayback Machine.
- ↑ "Webix Skin Builder" . webix.com .
- ↑ "Formbuilder" . webix.com .
- Actualmente, los frameworks de JavaScript solo admiten el almacenamiento sin conexión mediante extensiones de navegador preinstaladas como Google Gears . Si un usuario no tiene instalada una de estas extensiones en su navegador, el framework no podrá ofrecer soporte sin conexión. Los desarrolladores de frameworks de JavaScript interesados en implementar Gears pueden consultar la Guía de inicio rápido de Gears .
- ↑ o.DojoToolkit.Org/offline Archivado el 10 de febrero de 2010 en Wayback Machine dice "Dojo Offline ya no es compatible después de Dojo 1.3"
- ^ "Ext JS 7.3.0 - Documentos Sencha" . docs.sencha.com .
- ↑ "googlearchive/gwt-google-apis" . GitHub . 24 de abril de 2021.
- ↑ "jQuery HTML5 Storage plugin - daveschindler" . sites.google.com . Archivado del original el 4 de marzo de 2017. Consultado el 15 de octubre de 2012 .
- ↑ "Este ejemplo muestra cómo guardar/cargar el estado de la cuadrícula" . jqwidgets.com . Consultado el 17 de diciembre de 2015 .
- ↑ Algunas bibliotecas de JavaScript proporcionan primitivas gráficas 2D que se pueden usar para gráficos vectoriales compatibles con diferentes navegadores. Estas bibliotecas dependen de tecnologías subyacentes del navegador o complementos como Canvas, SVG, VML, Flash y Silverlight para realizar el renderizado real, pero ayudan a aislar el código de la aplicación y del widget de las diferencias de la API del motor de renderizado.
- ↑ "Dojox/GFX - DojoCampus - Docs" . Archivado del original el 9 de marzo de 2009. Consultado el 23 de abril de 2009 .
- ↑ Complemento jQuery SVG
- ↑ «kamicane/arte» . GitHub . 26 de febrero de 2021.
- ↑ "Integración de gráficos: guía de integración de gráficos de terceros. Documentación de Webix" . docs.webix.com
- ↑ Algunas bibliotecas de JavaScript incluyen widgets para gráficos, indicadores y otras visualizaciones de datos.
- ↑ "Dojox/Charting - DojoCampus - Docs" . Archivado del original el 3 de marzo de 2009. Consultado el 23 de abril de 2009 .
- ↑ API de gráficos
- ↑ "Flot: Gráficos atractivos en JavaScript para jQuery" . flotcharts.org .
- ↑ Complemento jQuery Visualize archivado el 9 de julio de 2009 en Wayback Machine
- ↑ "jqxChart - widget de gráficos javascript con tecnología jQuery, HTML5 y SVG" . jqwidgets.com . Consultado el 17 de diciembre de 2015 .
- ↑ "jQuery Gauge" . jqwidgets.com . Consultado el 17 de diciembre de 2015 .
- ↑ "ZK Live Demo - Otros gráficos" . Demostración en vivo - Marco de aplicación web ZK .
- ↑ "Widget de interfaz de usuario de gráficos JavaScript - Gráficos JS de Webix" . webix.com .
- 1 2 3 4 "Notas de la versión/1.4 - DojoCampus - Documentación" . Archivado del original el 8 de febrero de 2010. Recuperado el 17 de diciembre de 2009 .
- 1 2 3 4 "Plataformas compatibles | Enyo JS" . Archivado del original el 23 de julio de 2012. Recuperado el 26 de julio de 2012 .
- ↑ «Sencha Ext JS» . 5 de noviembre de 2020.
- 1 2 3 4 5 js.foundation, JS Foundation -. "Soporte para navegadores - jQuery" . docs.jquery.com .
- 1 2 3 4 5 "Widgets de jQuery UI - Documentación de ayuda" . jqwidgets.com . Consultado el 17 de diciembre de 2015 .
- ↑ "OpenUI5SDK - Kit de demostración" . openui5.hana.ondemand.com . Consultado el 22 de marzo de 2021 .
- 1 2 3 4 5 6 "Documentación de compatibilidad de Webix" . docs.webix.com .
- Bibliotecas de JavaScript
- Comparación de software
- Ajax (programación)
- Desarrollo web
- marcos de trabajo web
- Frameworks web de JavaScript