Migrar desde v3.x
Desde v3.x, los principales riesgos son la compatibilidad de opciones y los cambios de paquetes.
Cambios prioritarios
particles.color->particles.paint.fillparticles.stroke->particles.paint.stroke
Renombrado de paquetes
Algunos paquetes de v3.x han sido renombrados o reestructurados:
| Paquete v3 | Paquete actual | Nota |
|---|---|---|
@tsparticles/move-base | @tsparticles/plugin-move | Fusionados en un solo plugin |
@tsparticles/move-parallax | @tsparticles/plugin-move | Fusionados en un solo plugin |
@tsparticles/updater-color | @tsparticles/updater-paint | Reemplazado por el sistema paint |
@tsparticles/updater-stroke-color | @tsparticles/updater-paint | Reemplazado por el sistema paint |
@tsparticles/plugin-hsv-color | @tsparticles/plugin-hsv-color | Movido a plugins/colors/hsv/, mismo nombre |
| (no necesario en v3 - integrado) | @tsparticles/plugin-interactivity | Necesario para que funcionen todos los plugins de interaccion (grab, bubble, repulse, etc.) |
Ejemplos de mapeo de opciones
Antes (estilo v3.x):
const options = {
particles: {
color: {
value: "#ff0000",
},
stroke: {
width: 2,
color: "#000000",
},
},
};Despues (actual):
const options = {
particles: {
paint: {
fill: {
value: "#ff0000",
},
stroke: {
width: 2,
color: "#000000",
},
},
},
};Migracion de API load
Antes (llamada posicional legacy):
await tsParticles.load("tsparticles", options);Despues (parametro objeto):
await tsParticles.load({
id: "tsparticles",
options,
});Pasos recomendados
- Alinea todos los paquetes
@tsparticles/*a la ultima version disponible. - Reemplaza las claves de opciones obsoletas (
particles.color,particles.stroke) conparticles.paint.*. - Actualiza los paquetes renombrados en
package.json(ver tabla arriba). - Si usas plugins de interaccion (grab, bubble, repulse, etc.), instala
@tsparticles/plugin-interactivityy cargalo conawait loadInteractivityPlugin(tsParticles)antes de cargar cualquier plugin de interaccion. - Verifica que los plugins/formas personalizados se carguen antes de
tsParticles.load(...). - Vuelve a probar interacciones y escenas criticas de rendimiento.
Funciones de carga granulare
Algunos paquetes exponen funciones de carga individuales para cargar solo lo que necesitas, reduciendo el tamano del bundle.
Plugins
@tsparticles/plugin-absorbers:loadAbsorbersPluginSimple(solo ciclo de vida y dibujo de absorbers),loadAbsorbersInteraction(solo interaccion click/hover) oloadAbsorbersPlugin(ambos).@tsparticles/plugin-emitters:loadEmittersPluginSimple(solo ciclo de vida y dibujo de emisores),loadEmittersInteraction(solo interaccion click/hover) oloadEmittersPlugin(ambos).
Formas
@tsparticles/shape-polygon:loadGenericPolygonShape(poligono) oloadTriangleShape(triangulo) individualmente, oloadPolygonShapepara ambos.@tsparticles/shape-cards:loadClubsSuitShape,loadDiamondsSuitShape,loadHeartsSuitShape,loadSpadesSuitShape(palos individuales),loadCardSuitsShape(todos los palos),loadFullCardsShape(imagenes de cartas) oloadCardsShape(todos).
Todos los demas paquetes de formas (arrow, circle, cog, emoji, heart, image, infinity, line, matrix, path, rounded-polygon, rounded-rect, spiral, square, squircle, star, text) exportan directamente una unica funcion load*Shape.
Recursos
- Matriz de renombres:
/migrations/option-rename-matrix particles.paint:/options/particles-paint
