Este documento foi traduzido por IA. Para informações precisas, consulte a versão em inglês.
Inscreva-se em eventos de contexto (como mudanças de valor de campo, mudanças de propriedade, atualização de recursos, etc.) no RunJS. Os eventos são mapeados para eventos DOM personalizados em ctx.element ou eventos do barramento interno de ctx.resource com base em seu tipo.
| Cenário | Descrição |
|---|---|
| JSField / JSEditableField | Escuta mudanças no valor do campo vindas de fontes externas (formulários, vinculações, etc.) para atualizar a UI de forma síncrona, alcançando o vínculo bidirecional (two-way binding). |
| JSBlock / JSItem / JSColumn | Escuta eventos personalizados no contêiner para responder a mudanças de dados ou estado. |
| Relacionado a resource | Escuta eventos de ciclo de vida do recurso, como atualização ou salvamento, para executar lógica após a atualização dos dados. |
| Nome do Evento | Descrição | Origem do Evento |
|---|---|---|
js-field:value-change | Valor do campo modificado externamente (ex: vinculação de formulário, atualização de valor padrão) | CustomEvent em ctx.element, onde ev.detail é o novo valor |
resource:refresh | Os dados do recurso foram atualizados | Barramento de eventos de ctx.resource |
resource:saved | Salvamento do recurso concluído | Barramento de eventos de ctx.resource |
Regra de mapeamento de eventos: Eventos com o prefixo
resource:passam porctx.resource.on, enquanto outros geralmente passam por eventos DOM emctx.element(se existir).
ctx.on devem ser removidos no momento apropriado via ctx.off para evitar vazamentos de memória ou disparos duplicados.ctx.off é geralmente chamado dentro da função de limpeza (cleanup) do useEffect.ctx.off pode não existir; recomenda-se usar o encadeamento opcional (optional chaining): ctx.off?.('eventName', handler).ctx.on(eventName, handler) deve ter um ctx.off(eventName, handler) correspondente, e a referência do handler passada deve ser idêntica.on/offjs-field:value-change)