flexibilidad cuando la necesitamos. Y luego, la estructura sigue ahí para nosotros. Otra ventaja de este enfoque es que puedes mejorar progresivamente el code. En otras palabras, especialmente si vienes de una base de code que ha existido durante un tiempo, ya utilizando opciones, por ejemplo, hay una forma de mejorar progresivamente tu code hay una forma de agregar progresivamente características de la composition API sin tener que refactorizar todo y reescribir todo tu code, que de nuevo, para mí, es uno de los puntos de venta más grandes de Vue en cuanto a su flexibilidad para adaptarse a diferentes situaciones.
Además, porque ahora tienes la capacidad de fusionar básicamente las cosas de la composition API con la API de Opciones, tienes más amigabilidad con typescript de la que tendrías si hubieras hecho pura API de Opciones. Así que es algo a considerar. Cuando se trata de contras, sin embargo, como podrías esperar, porque estás usando dos enfoques, esto significa que tienes que tener una mejor comprensión de básicamente ambas metodologías. Y esto es solo un contra en el sentido de que hay un poco más de curva de aprendizaje, porque eso significa que las personas que estaban muy cómodas con la API de Opciones ahora también tienen que conocer la composition API, y viceversa, aquellos que conocían la composition API también necesitarán conocer la API de Opciones. Pero de nuevo, una de las cosas interesantes que diría cuando se trata de eso es que muchas personas cuando usan Vue ya están familiarizadas con las opciones generalmente desde el principio. Y lo más importante, los principios que creo que impulsan la API detrás de ambas, la composición y las opciones, en cuanto a los hooks del ciclo de vida, las propiedades computadas, los datos reactivos son en su mayoría muy, muy similares. Así que, espero que aunque haya dos enfoques diferentes, hay similitudes y espero que la curva de aprendizaje no sea demasiado mala.
Dicho esto, como vimos anteriormente con la configuración del script, puede ser bastante conciso. Pero ahora que tienes ambos, puede ser un poco verboso, a veces porque tienes que definir manualmente tus retornos. Y aunque podría haber una herramienta, como básicamente tooling para ayudar con eso en el futuro, esto es técnicamente un contra cuando se trata de comparar la capacidad de ir puro composition API versus opciones. Y entonces, sabes cómo dije que era más amigable con TS, bueno, entonces, de nuevo, de manera similar, en comparación con la composition API no es tan amigable con TypeScript en el sentido de que puedes usar una sintaxis realmente limpia con la pura composition API pero con la API de Opciones u opciones API, por otro lado, entonces tienes que hacer un poco más de eso de afinar para asegurarte de que estás tipificando las cosas correctamente de acuerdo al contexto. Y entonces esto es una de esas cosas donde es, bueno, esto no es una solución perfecta cuando se trata de eso. Y de nuevo, es un enfoque híbrido. Esto es de esperarse. Entonces, ¿cuál enfoque es el correcto? Bueno, creo que una de las cosas desafiantes cuando se trata de ingeniería es que muchas veces como desarrolladores estamos obsesionados con ser los más correctos o encontrar formas de demostrar que esto siempre será correcto. Pero en lugar de pensar en lo correcto en términos de corrección o alguna superioridad objetiva, creo que es más importante cambiar el contexto de lo correcto en lugar de centrarse en el hecho de que lo que realmente importa es elegir el enfoque correcto para tu equipo. En otras palabras, más sobre el ajuste y en lugar de algún tipo de escala de calificación objetiva de la que estamos hablando. Y aquí hay algunos aspectos a considerar al tomar la decisión entre los diversos enfoques. El primero de los cuales es la base de code con la que estás trabajando, ¿verdad? Porque si estás migrando de una existente que tiene Vue 2 y ya estás usando la API de Opciones y estás migrando a Vue 3, por ejemplo. De nuevo, sabemos que las migraciones pueden ser costosas y quieren seguir sacando nuevas características. Así que diría que en ese caso, porque el equipo ya está familiarizado con la API de Opciones, en mi opinión personal, tiene más sentido mejorar progresivamente tus componentes con la composition API. Y luego, incluso si tu equipo está pensando en hacer más composition API, esto evita la necesidad de hacer toda tu base de code pura composition API desde el principio, lo cual puede definitivamente ralentizar el desarrollo, especialmente cuando se trata de lanzar nuevas características y tal. Por otro lado, sin embargo, si estamos hablando de un nuevo proyecto, aquí es donde creo que las sutilezas entran un poco más diferente. Creo que esto es algo que a menudo se pasa por alto, pero realmente importante a considerar es quién está realmente contribuyendo a la base de code, ¿verdad? ¿Cómo está compuesto el equipo? Si tienes muchas personas que no están tan familiarizadas con JavaScript y tienes quizás una o dos personas que están escribiendo la base de code principalmente, con ellas entrando para ayudar con pequeños bits y piezas, la API de Opciones sirviendo como la metodología principal podría ser realmente un buen caso de uso para esto para la mayoría de los componentes, porque lo creas o no, cuando pensamos en muchos componentes, es fácil querer siempre pensar que se scale infinitamente, pero porque Vue te da la flexibilidad de elegir entre varias metodologías, dependiendo de cuál, no hay razón para decir que no puedes empezar con opciones y luego, a medida que crece en complejidad, puedes mejorarlo con la composition API o eventualmente cambiarlo según lo vea conveniente. Y como resultado, cuando estás considerando tu equipo, esto puede ser realmente, realmente importante, porque, por ejemplo, si tienes un equipo que está realmente, realmente familiarizado con JavaScript, y quieren la flexibilidad de tomar sus propias decisiones arquitectónicas, entonces sí, la composition API todo el camino podría tener mucho sentido. Pero de nuevo, por eso realmente importa la composición de tu equipo y cómo básicamente eso contribuye al mantenimiento y la iteración de tu base de code. Y un tercer factor, que es en realidad bastante grande, es ¿planeas o el equipo planea usar TypeScript muy, muy intensamente, ¿verdad? Y creo que hay una diferencia entre usar TypeScript ligeramente para anotar algunos tipos de vez en cuando a algunos usuarios de TypeScript más pesados que quieren hacer cosas mucho más complejas
Comments