Venimos del mundo de AngularJS y anteriormente, Crisp solía ser una aplicación de AngularJS. Por lo tanto, dependíamos mucho de los filtros y teníamos alrededor de 200 filtros. Así que tuvimos que encontrar una solución, una forma elegante de mover todas esas características a View3.
Lo que hicimos fue mover todos los filtros a métodos nativos de JavaScript. Aquí tienes un ejemplo con un filtro ColorForValue. Es una función nativa de JavaScript. Y ahora, lo que vamos a hacer es importar esta función como un método global en Vue. Creamos un objeto global $Filter, para que podamos acceder a todos nuestros filtros en cada componente. Aquí tienes un ejemplo con un filtro de mayúsculas.
Y luego, para encontrar todos los filtros que estábamos usando dentro de los componentes, hemos estado utilizando una expresión regular. Con esta expresión regular, básicamente puedes encontrar todos tus diferentes filtros. Y de esta manera puedes mover todos los filtros a una nueva sintaxis de método. También descubrimos que ya no es posible usar VIF con V4 con Vue 3. Y estoy de acuerdo, no es una buena idea usar los dos juntos. Pero de todos modos, lo hemos estado usando, así que tuvimos que reemplazar este comportamiento con propiedades computadas. Otra tarea importante fue actualizar algunas bibliotecas de terceros.
Tuvimos que bifurcar algunas bibliotecas, como Vue Chartist. Nada muy complicado, como puedes ver, mover una biblioteca externa de Vue 2 a Vue 3 no es muy complicado. Básicamente, la mayoría de las cosas están relacionadas con la API global de Vue. Solo necesitas reemplazar el constructor y algunas API. Y tuvimos que hacer eso para alrededor de 5 bibliotecas diferentes. Nos apoyamos en Trello para gestionar todas las tareas mientras nos movíamos a Vue 3. Y era importante para nosotros no pasar por alto nada. Deberías usar algo como GitHub, GitLab, JIRA o Trello para anotar todo, así no te pierdes ningún error o biblioteca.
Pudimos lanzar esta migración a Vue 3 después de casi 2 semanas. Y hasta ahora, ha sido genial, nadie ha notado nada. Para ser honesto, tuvimos algunos errores, pero nada muy importante. La buena noticia ha sido el rendimiento. De Vue 2 a Vue 3, hemos logrado reducir la carga de Jira. Y hasta ahora, la aplicación se siente más rápida y receptiva.
Comments