Autor (es) original (es) | Evan You |
---|---|
Versión inicial | Febrero de 2014 [1] |
Lanzamiento estable | 3.2.20 [2] / 8 de octubre de 2021 |
Repositorio | |
Escrito en | Mecanografiado |
Tamaño | 33,30 KB min + gzip |
Escribe | Marco de JavaScript |
Licencia | Licencia MIT [3] |
Sitio web | vuejs |
Vue.js (comúnmente conocidos como Vue ; pronunciado / v j U / , como "vista" [4] ) es una de código abierto modelo-vista-viewmodel extremo delantero marco de JavaScript para la construcción de interfaces de usuario y las aplicaciones de una sola página . [11] Fue creado por Evan You, y es mantenido por él y el resto de los miembros activos del equipo central. [12]
Vue.js presenta una arquitectura incrementalmente adaptable que se enfoca en la representación declarativa y la composición de componentes. La biblioteca principal se centra solo en la capa de vista. [13] Las funciones avanzadas requeridas para aplicaciones complejas como enrutamiento , administración de estado y herramientas de compilación se ofrecen a través de bibliotecas y paquetes de soporte mantenidos oficialmente. [14]
Vue.js permite extender HTML con atributos HTML llamados directivas. [15] Las directivas ofrecen funcionalidad a las aplicaciones HTML y vienen como directivas integradas o definidas por el usuario.
Vue fue creado por Evan You después de trabajar para Google usando AngularJS en varios proyectos. Más tarde resumió su proceso de pensamiento: "Pensé, ¿qué pasaría si pudiera extraer la parte que realmente me gustó de Angular y construir algo realmente liviano"? [16] El primer compromiso de código fuente con el proyecto data de julio de 2013, y Vue se lanzó por primera vez en febrero de 2014.
Los nombres de las versiones a menudo se derivan del manga y el anime , la mayoría de los cuales pertenecen al género de ciencia ficción .
Versión | Fecha de lanzamiento | Título |
---|---|---|
3.2 | 5 de agosto de 2021 | Quintillizos por excelencia [17] |
3.1 | 7 de junio de 2021 | Plutón [18] |
3,0 | 18 de septiembre de 2020 | Una pieza [19] |
2.6 | 4 de febrero de 2019 | Macross [20] |
2.5 | 13 de octubre de 2017 | Nivel E [21] |
2.4 | 13 de julio de 2017 | Kill la Kill [22] |
2.3 | 27 de abril de 2017 | La extraña aventura de JoJo [23] |
2.2 | 26 de febrero de 2017 | Inicial D [24] |
2.1 | 22 de noviembre de 2016 | Hunter X Hunter [25] |
2.0 | 30 de septiembre de 2016 | Fantasma en el caparazón [26] |
1.0 | 27 de octubre de 2015 | Evangelion [27] |
0,12 | 12 de junio de 2015 | Bola de Dragón [28] |
0,11 | 7 de noviembre de 2014 | Cowboy Bebop [29] |
0,10 | 23 de marzo de 2014 | Blade Runner [30] |
0,9 | 25 de febrero de 2014 | Animatriz [31] |
0,8 | 27 de enero de 2014 | N / A [32] |
0,7 | 24 de diciembre de 2013 | N / A [33] |
0,6 | 8 de diciembre de 2013 | VueJS [34] |
Los componentes de Vue amplían los elementos HTML básicos para encapsular código reutilizable. En un nivel alto, los componentes son elementos personalizados a los que el compilador de Vue adjunta comportamiento. En Vue, un componente es esencialmente una instancia de Vue con opciones predefinidas. [35] El siguiente fragmento de código contiene un ejemplo de un componente de Vue. El componente presenta un botón e imprime el número de veces que se hace clic en el botón:
< template > < div id = "tuto" > < v-bind al hacer clic con el botón : initial-count = "0" > </ button-clicked > </ div > </ template >< guión > Vue . componente ( 'button-clicked' , { props : [ 'initialCount' ], data : () => ({ count : 0 , }), template : '<button v-on: click = "onClick"> Clicked {{ count}} veces </button> ' , calculado : { countTimesTwo () { return this . count * 2 ; } }, watch : { count (newValue , oldValue ) { consola . log ( `El valor de recuento se cambia de $ { oldValue } a $ { nuevoValor } .` ); } }, métodos : { onClick () { this . contar + = 1 ; } }, montado () { esto . cuenta = esto . initialCount ; } });new Vue ({ el : '#tuto' , }); </ script >
Vue utiliza una sintaxis de plantilla basada en HTML que permite vincular el DOM renderizado a los datos de la instancia de Vue subyacente. Todas las plantillas de Vue son HTML válidas que pueden ser analizadas por navegadores y analizadores HTML que cumplen con las especificaciones . Vue compila las plantillas en funciones de renderización DOM virtual . Un modelo de objeto de documento virtual (o "DOM") permite a Vue representar componentes en su memoria antes de actualizar el navegador. Combinado con el sistema de reactividad, Vue puede calcular la cantidad mínima de componentes para volver a renderizar y aplicar la cantidad mínima de manipulaciones DOM cuando cambia el estado de la aplicación.
Los usuarios de Vue pueden usar la sintaxis de la plantilla o elegir escribir directamente funciones de renderizado usando hiperescripto, ya sea a través de llamadas a funciones o JSX . [36] Las funciones de renderizado permiten crear aplicaciones a partir de componentes de software . [37]
Vue presenta un sistema de reactividad que usa objetos simples de JavaScript y una reproducción optimizada. Cada componente realiza un seguimiento de sus dependencias reactivas durante su renderizado, por lo que el sistema sabe exactamente cuándo volver a renderizar y qué componentes volver a renderizar. [38]
Vue proporciona una variedad de formas de aplicar efectos de transición cuando se insertan, actualizan o eliminan elementos del DOM . Esto incluye herramientas para:
Cuando se inserta o elimina un elemento envuelto en un componente de transición, esto es lo que sucede:
Una desventaja tradicional de las aplicaciones de una sola página (SPA) es la imposibilidad de compartir enlaces a la "sub" página exacta dentro de una página web específica. Debido a que los SPA brindan a sus usuarios solo una respuesta basada en URL desde el servidor (generalmente sirve index.html o index.vue), marcar ciertas pantallas o compartir enlaces a secciones específicas es normalmente difícil, si no imposible. Para resolver este problema, muchos enrutadores del lado del cliente delimitan sus URL dinámicas con un "hashbang" (#!), Por ejemplo, page.com/#!/ . Sin embargo, con HTML5, la mayoría de los navegadores modernos admiten el enrutamiento sin hashbangs.
Vue proporciona una interfaz para cambiar lo que se muestra en la página en función de la ruta URL actual, independientemente de cómo se modificó (ya sea mediante un enlace enviado por correo electrónico, actualización o enlaces en la página). Además, el uso de un enrutador front-end permite la transición intencional de la ruta del navegador cuando se producen ciertos eventos del navegador (es decir, clics) en botones o enlaces. Vue en sí no viene con enrutamiento hash de front-end. Pero el paquete de código abierto "vue-router" proporciona una API para actualizar la URL de la aplicación, admite el botón Atrás (historial de navegación) y restablece la contraseña de correo electrónico o los enlaces de verificación de correo electrónico con parámetros de autenticación de URL. Admite la asignación de rutas anidadas a componentes anidados y ofrece un control de transición detallado. Con Vue, los desarrolladores ya están componiendo aplicaciones con pequeños bloques de construcción que construyen componentes más grandes.Con vue-router agregado a la mezcla, los componentes simplemente deben asignarse a las rutas a las que pertenecen, y las rutas principales / raíz deben indicar dónde deben representar los elementos secundarios.[41]
< div id = "app" > < vista-enrutador > </ vista-enrutador > </ div >...< script > ... const User = { template : '<div> User {{$ route.params.id}} </div>' };const router = new VueRouter ({ rutas : [ { ruta : '/ usuario /: id' , componente : Usuario } ] }); ... </ script >
El código de arriba:
websitename.com/user/<id>
.$route.params.id
.<router-view></router-view>
dentro de la aplicación div # del DOM.websitename.com/user/1
será:< div id = "app" > < div > < div > Usuario 1 </ div > </ div > </ div >
[42]
La biblioteca principal viene con herramientas y bibliotecas desarrolladas por el equipo principal y los colaboradores.
Este artículo incorpora texto de un trabajo de contenido gratuito . Con licencia de MIT License Declaración de licencia / permiso en Wikimedia Commons . Texto tomado de Vue.js Guide , Vue.js.
de instrucciones