Propiedad de componente personalizada que no es un rasgo
Pregunta
Me gustaría crear un componente personalizado con una propiedad que se actualice según un código específico, pero no quiero que esta propiedad sea visible ni actualizable como rasgo; digamos que mi propiedad se llama "ebTesto", escribí una función de plugin así:
function addComponentX(editor, options){
const COMPONENT_TYPE = 'eb-componentx';
editor. DomComponents.addType(COMPONENT_TYPE, {
isComponent: function(el) {
if(el.getAttribute && el.getAttribute('data-gjs-type') ==COMPONENT_TYPE) {
return {type:COMPONENT_TYPE};
}
},
modelo: {
Predeterminados: {
ebTesto: 'Ciao',
etiquetaNombre: 'div',
Componentes: [
{
Escribe:'texto',
contenido: 'Título componente X',
Removible: falso
}
]
},
ebTesto: 'Ciao'
}
});
editor. BlockManager.add(COMPONENT_TYPE, {
etiqueta: 'Componente X',
categoría: 'EB',
Atributos: {Class:'eb-componentx-block'},
contenido: '<div class="eb-componentx" data-gjs-type="${COMPONENT_TYPE}"></div>'
});
}
Esperaba encontrar mi nueva propiedad en la parte "gjs-components" del JSON almacenado, pero esto es lo que obtuve:
[
{
"tipo": "eb-componentx",
"clases": [
"eb-componentx"
],
"componentes": [
{
"tipo": "texto",
"removible": falso,
"contenido": "Componente del título X"
}
]
}
]
¿Quizá lo estoy intentando mal? ¿Alguien ha tenido alguna vez una necesidad similar? ¡Gracias por tu ayuda!
Respuestas (4)
¡Gracias a los dos!
Creo que no se almacena porque la propiedad no se ha cambiado respecto a la predeterminada. El editor debería poder recuperar la propiedad desde la propia definición del componente.
Prueba a añadirlo dentro de los 'valores predeterminados'
Gracias por informar de esto, @ltenti-eventboost.
Buena pregunta sobre [PREGUNTA] propiedad de componente personalizado que no es un rasgo. El enfoque recomendado con Componentes es utilizar la API orientada a eventos.
Empieza aquí:
- Consulta la documentación de GrapesJS de tu módulo específico
- Busca el método del oyente de eventos 'on()'
- La mayoría de las operaciones se pueden realizar escuchando eventos del editor y de los componentes
Patrones comunes: '''javascript Prestad atención a los cambios editor.on('Change', () => console.log('Something Changed'));
Ciclo de vida de los componentes editor.on('component:mount', (c) => console.log('component ready', c)); editor.on('component:update', (c) => console.log('component updated', c));
**Si sigues atascado:**
- Compartir una reproducción mínima de CodeSandbox
- Incluye lo que ya has probado
- Menciona tu versión GrapesJS
- ¡La comunidad está aquí para ayudar!
Preguntas y respuestas relacionadas
Continúa investigando con debates sobre temas similares.
Issue #3119
[PREGUNTA] ¿Cómo crear un bloque personalizado hecho con componentes de grapesjs?
Hola, quiero que me hagan bloques personalizados con componentes de grapesjs. Encontré la solución para añadir componentes: https://github....
Issue #3335
Creando rasgo con la interfaz de propiedad del Style Manager
Tengo un componente que usa la propiedad 'background-url' del Style Manager: Me gustaría reutilizar esta interfaz que aparece en el Style M...
Issue #3160
[Pregunta] Añadir la etiqueta toggle-move en un panel de ajustes personalizado en Vue
Versión: ^0.16.18 Esta pregunta pretende extraer la función de movimiento de capas a una personalizada. Solo quiero que los componentes se...
Issue #3328
¿Cómo puedo actualizar el nodeValue (valor de texto) de los componentes mediante formas de entrada
Hola. Grapesjs es una herramienta estupenda. Gracias por ello. Quiero actualizar el valor de texto de un componente por entradas, ¿cómo pue...
Plugins de pago que cumplen con este problema
Seleccionado por temas clave y relevancia de etiquetas para ayudarte a enviar más rápido.
Cargando recomendaciones de plugins de pago...
Consulta los plugins de código abierto de GrapesJS en GitHub O haz una búsqueda rápida en nuestro catálogo gratuito.
Explora plugins gratuitos →Los plugins premium incluyen soporte, actualizaciones regulares y funciones listas para producción — ahorrando días de trabajo de integración.
Explora plugins premium →Tutoriales relacionados
Guías detalladas sobre el mismo tema.
Tutorial
Ship to Production Faster: What’s New in GrapesJS Shadcn
Supercharge your page builder! GrapesJS Shadcn adds live drag previews, rich text / commands, dynamic data, and canvas presets to ship to prod faster.
Tutorial
How to Build a Production GrapesJS Editor: The Complete Walkthrough of Brief, Preset, Plugins, and Services
A complete walkthrough of building a production GrapesJS editor: how to choose a preset, pick plugins, and scope setup services without burning a sprint.
Tutorial
Embed GrapesJS in Your SaaS: A Weekend Guide
Embed GrapesJS in your SaaS and ship a white-label page builder over a weekend. Honest tradeoffs, real code, and the plugins that close the UX gap.
Explorar categorías de plugins
Ve directamente a las páginas de categorías de plugins en el marketplace.