Este documento foi traduzido por IA. Para informações precisas, consulte a versão em inglês.
Uma instância de ElementProxy que aponta para o contêiner DOM do sandbox, servindo como o alvo de renderização padrão para ctx.render(). Está disponível em cenários onde existe um contêiner de renderização, como JSBlock, JSField, JSItem e JSColumn.
| Cenário | Descrição |
|---|---|
| JSBlock | O contêiner DOM do bloco, usado para renderizar conteúdo personalizado do bloco. |
| JSField / JSItem / FormJSFieldItem | O contêiner de renderização para um campo ou item de formulário (geralmente um <span>). |
| JSColumn | O contêiner DOM para uma célula de tabela, usado para renderizar conteúdo personalizado da coluna. |
Observação:
ctx.elementsó está disponível em contextos RunJS que possuem um contêiner de renderização. Em contextos sem UI (como lógica puramente de backend), ele pode serundefined. Recomenda-se realizar uma verificação de valor nulo antes do uso.
Recomendado: Toda renderização deve ser realizada via ctx.render(). Evite usar as APIs DOM de ctx.element diretamente (ex: innerHTML, appendChild, querySelector, etc.).
| Vantagem | Descrição |
|---|---|
| Segurança | Controle de segurança centralizado para evitar XSS e operações DOM inadequadas. |
| Suporte ao React | Suporte completo para JSX, componentes React e ciclos de vida. |
| Herança de Contexto | Herda automaticamente o ConfigProvider da aplicação, temas, etc. |
| Tratamento de Conflitos | Gerencia automaticamente a criação/desmontagem da raiz React para evitar conflitos de múltiplas instâncias. |
ctx.element.innerHTMLestá depreciado. Por favor, usectx.render()em seu lugar.
Quando você precisar abrir um Popover usando o elemento atual como âncora, você pode acessar ctx.element?.__el para obter o DOM nativo como target:
Use
__elapenas em cenários como "usar o contêiner atual como âncora"; não manipule o DOM diretamente em outros casos.
ctx.render(vnode) for chamado sem um argumento container, ele renderiza no contêiner ctx.element por padrão.ctx.element estiver ausente quanto nenhum container for fornecido, um erro será lançado.ctx.render(vnode, customContainer).ctx.element destina-se ao uso interno pelo ctx.render(). Acessar ou modificar suas propriedades/métodos diretamente não é recomendado.ctx.element será undefined. Certifique-se de que o contêiner está disponível ou passe um container manualmente antes de chamar ctx.render().innerHTML/outerHTML no ElementProxy sejam sanitizados via DOMPurify, ainda é recomendado usar ctx.render() para um gerenciamento de renderização unificado.