Creación de Scripts y Componentes
En MageObsidian Components, los temas pueden incluir lógica personalizada en JavaScript y componentes Vue para extender su funcionalidad. Estos archivos deben ubicarse dentro del directorio del tema:
Específicamente:
- JavaScript Personalizado:
- Componentes Vue:
Este proceso sigue el mismo flujo de trabajo explicado para los módulos, garantizando consistencia y facilidad de uso.
Flujo de Trabajo
1. JavaScript en web/js
El directorio web/js
está destinado a archivos de JavaScript de propósito general que manejan lógica personalizada o funciones utilitarias. Los archivos colocados aquí son procesados automáticamente por Vite e incluidos en el frontend según sea necesario.
Ejemplo:
Uso en .phtml
:
2. Componentes Vue en web/components
El directorio web/components
está diseñado para componentes Vue de un solo archivo (SFC). Cada componente debe seguir la estructura de Vue, aprovechando la Composition API para una mayor modularidad y flexibilidad.
Ejemplo:
Uso en .phtml
:
Guías y Recomendaciones
-
Flujo de Trabajo Consistente
El flujo de trabajo para incluir scripts en los temas es el mismo que para los módulos:- Usa
web/js
para lógica general en JavaScript. - Usa
web/components
para componentes Vue.
- Usa
-
Ubicación de Archivos
Asegúrate de que tus archivos estén en las rutas correctas dentro del directorio del tema:- JavaScript:
app/design/frontend/Vendor/Theme/web/js
- Componentes:
app/design/frontend/Vendor/Theme/web/components
- JavaScript:
-
Convenciones de Nombres
- Usa kebab-case o camelCase para los nombres de archivos en
web/js
. - Usa PascalCase para los archivos de componentes Vue en
web/components
.
- Usa kebab-case o camelCase para los nombres de archivos en
-
Imports Dinámicos
Los imports dinámicos pueden usarse para los archivos de JavaScript para optimizar el rendimiento: -
Procesamiento con Vite
Tantoweb/js
comoweb/components
son procesados por Vite:- Los archivos se optimizan y agrupan.
- El tree-shaking asegura que solo el código necesario sea incluido.
Ejemplo de Flujo de Trabajo
Aquí tienes un ejemplo práctico de cómo incluir un script personalizado y un componente Vue en un tema:
-
Crear un Script Personalizado:
Archivo:app/design/frontend/Vendor/Theme/web/js/theme-logic.js
-
Crear un Componente Vue:
Archivo:app/design/frontend/Vendor/Theme/web/components/CartSummary.vue
-
Incluir en
.phtml
:
Beneficios
-
Flujo de Trabajo Unificado
Una metodología consistente entre módulos y temas simplifica el desarrollo y el mantenimiento. -
Herramientas Modernas
Vite asegura una agrupación optimizada y compilaciones más rápidas, con soporte para tree-shaking y módulos ES. -
Flexibilidad
Permite que la lógica personalizada y los componentes Vue se integren sin problemas en el frontend, mejorando la funcionalidad y la experiencia del usuario.
Siguiendo estas pautas, puedes crear un tema bien organizado y eficiente que aproveche MageObsidian Components para un máximo rendimiento y escalabilidad.