diff --git a/apps/docs-app/i18n/es/docusaurus-plugin-content-docs/current.json b/apps/docs-app/i18n/es/docusaurus-plugin-content-docs/current.json index 4904fcce0..40f046f59 100644 --- a/apps/docs-app/i18n/es/docusaurus-plugin-content-docs/current.json +++ b/apps/docs-app/i18n/es/docusaurus-plugin-content-docs/current.json @@ -43,6 +43,10 @@ "message": "Integraciones", "description": "The label for category Integrations in sidebar docsSidebar" }, + "sidebar.docsSidebar.category.Experimental": { + "message": "Experimental", + "description": "The label for category Experimental in sidebar docsSidebar" + }, "sidebar.docsSidebar.doc.Overview": { "message": "Visión General", "description": "The label for the doc item Overview in sidebar docsSidebar, linking to the doc features/updating/overview" diff --git a/apps/docs-app/i18n/es/docusaurus-plugin-content-docs/current/experimental/sfc/index.md b/apps/docs-app/i18n/es/docusaurus-plugin-content-docs/current/experimental/sfc/index.md new file mode 100644 index 000000000..5d483b595 --- /dev/null +++ b/apps/docs-app/i18n/es/docusaurus-plugin-content-docs/current/experimental/sfc/index.md @@ -0,0 +1,473 @@ +--- +sidebar_position: 1 +--- + +# Analog SFCs (Componentes de un solo archivo) + +> **Nota:** +> +> Este formato de archivos y su API es experimental, es una iniciativa impulsada por la comunidad, y no es un cambio oficialmente propuesto para Angular. Úselo bajo su propio riesgo. + +La extensión de archivo .analog denota un nuevo formato de archivo para Componentes de Archivo Único (SFCs) que tiene como objetivo simplificar la experiencia de autoría y proporcionar componentes y directivas compatibles con Angular. + +Juntos, combina: + +- Etiquetas de plantilla, script y estilo co-localizadas +- Uso de APIs de Señales de Angular sin decoradores +- Predeterminados orientados al rendimiento (`OnPush` detección de cambios, sin acceso a `ngDoCheck`, etc.) + +Para usar el SFC análogo, necesita usar el plugin de Analog Vite o el [plugin de Analog Astro](/docs/packages/astro-angular/overview) con una bandera adicional para habilitar su uso: + +```typescript +import { defineConfig } from 'vite'; +import analog from '@analogjs/platform'; + +export default defineConfig({ + // ... + plugins: [ + analog({ + vite: { + // Required to use the Analog SFC format + experimental: { + supportAnalogFormat: true, + }, + }, + }), + ], +}); +``` + +> También debes descomentar la información de tipos en el archivo src/vite-env.d.ts. Esto es temporal mientras el SFC Analog es experimental. + +### Configuración adicional + +Si está utilizando archivos `.analog` fuera de la raíz del proyecto, necesita especificar todas las rutas de los archivos `.analog` usando globs, de la siguiente manera: + +```typescript +export default defineConfig(({ mode }) => ({ + // ... + plugins: [ + analog({ + vite: { + experimental: { + supportAnalogFormat: { + include: ['/libs/shared/ui/**/*', '/libs/some-lib/ui/**/*'], + }, + }, + }, + }), + ], +})); +``` + +### Soporte IDE + +Para soportar el resaltado de sintaxis y otras funcionalidades del IDE con archivos `.analog`, necesitas instalar una extensión para soportar el formato para: + +- [WebStorm 2024.1+ or IDEA Ultimate 2024.1+ (EAP)](https://github.com/analogjs/idea-plugin) + +> [¡El soporte para VSCode está en camino! Por favor, vea este problema para más detalles](https://github.com/analogjs/analog/issues/858/). + +## Implementando un SFC + +Aquí hay una demostración del formato Analog construyendo un contador simple + +```html + + + + + +``` + +Consulte la sección [defineMetadata](#metadata) para agregar metadatos adicionales al componente. + +## Metadatos + +Mientras que los decoradores de clase se utilizan para agregar metadatos a un componente o directiva en los métodos de autoría tradicionales de Angular, estos se reemplazan en el formato Analog con la función global `defineMetadata`: + +```typescript +defineMetadata({ + host: { class: 'block articles-toggle' }, +}); +``` + +Esto soporta todas las propiedades de decorador de `@Component` o `@Directive` con algunas excepciones. + +### Propiedades de Metadatos Prohibidas + +Las siguientes propiedades no están permitidas en los campos de metadatos: + +- `template`: Utilice el `