Skip to content
Mithril.js 2
Main Navigation GuiaAPI

Português – Brasil

English
简体中文
繁體中文
Español
Français
Русский
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština
magyar

Português – Brasil

English
简体中文
繁體中文
Español
Français
Русский
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština
magyar

Aparência

Sidebar Navigation

API

API principal

m(selector, attributes, children)

render(element, vnodes)

mount(root, component)

route(root, defaultRoute, routes)

request(options)

parseQueryString(string)

buildQueryString(object)

buildPathname(object)

parsePathname(string)

trust(html)

fragment(attrs, children)

redraw()

censor(object, extra)

API Opcional

stream()

Guia

Nesta página

mount(root, component) ​

Descrição ​

Ativa um componente, permitindo que ele seja atualizado automaticamente em resposta a eventos do usuário.

javascript
var state = {
  count: 0,
  inc: function () {
    state.count++;
  },
};

var Counter = {
  view: function () {
    return m('div', { onclick: state.inc }, state.count);
  },
};

m.mount(document.body, Counter);

Para passar argumentos ao montar um componente, use:

javascript
m.mount(element, {
  view: function () {
    return m(Component, attrs);
  },
});

Assinatura ​

m.mount(element, Component)

ParâmetroTipoObrigatórioDescrição
elementElementSimUm elemento DOM que será o nó pai da subárvore DOM.
ComponentComponent|nullSimO componente a ser renderizado. null desmonta a árvore e limpa o estado interno.
retornaNão retorna nenhum valor.

Como ler assinaturas

Como funciona ​

m.mount(element, Component), quando chamado, renderiza o componente no elemento e registra o par (element, Component) no subsistema de atualização. Essa árvore será renderizada novamente quando atualizações manuais ou automáticas forem acionadas.

Na atualização, a nova árvore vDOM é comparada com a antiga, e a árvore DOM existente é modificada apenas onde necessário para refletir as mudanças. Os nós DOM inalterados não são modificados.

Substituir um componente ​

Chamar mount(element, OtherComponent) onde element é um ponto de montagem existente substitui o componente previamente montado por OtherComponent.

Desmontar ​

Chamar m.mount(element, null) em um elemento que possui um componente montado remove o componente e limpa o estado interno do Mithril.js. Isso pode ser útil para evitar vazamentos de memória ao remover o nó root manualmente do DOM.

Montagens sem interface ​

Em certas situações mais avançadas, você pode querer se registrar para receber notificações de atualizações sem renderizar nada na tela. Isso pode ser feito usando uma montagem sem interface, criada simplesmente invocando m.mount com um elemento que não foi adicionado à árvore DOM ativa e colocando toda a sua lógica útil no componente que você está montando. Você ainda precisa de uma view no seu componente, só que ela não precisa retornar nada útil e pode simplesmente retornar um valor como null ou undefined.

javascript
var elem = document.createElement('div');

// Registrar
m.mount(elem, {
  oncreate: function () {
    // Executa uma vez quando o elemento é adicionado
  },
  onupdate: function () {
    // Executa em cada atualização
  },
  onremove: function () {
    // Realize a limpeza necessária
  },

  // Boilerplate necessário
  view: function () {},
});

// Cancelar registro
m.mount(elem, null);

Não há necessidade de se preocupar com outras raízes de montagem. Várias raízes são suportadas e não interferirão entre si. Você pode até fazer o acima em um componente ao integrar com outro framework, e não será um problema.

Considerações de desempenho ​

Pode parecer ineficiente gerar uma árvore vnode a cada atualização, mas criar e comparar estruturas de dados JavaScript é surpreendentemente mais rápido do que ler e modificar o DOM.

Tocar no DOM pode ser extremamente custoso por alguns motivos. Alternar leituras e escritas pode afetar adversamente o desempenho, fazendo com que vários repaints do navegador ocorram em rápida sucessão, enquanto comparar árvores de DOM virtual permite que as escritas sejam agrupadas em um único repaint. Além disso, as características de desempenho de várias operações DOM variam entre as implementações e podem ser difíceis de aprender e otimizar para todos os navegadores. Por exemplo, em algumas implementações, ler childNodes.length tem uma complexidade de O(n); em algumas, ler parentNode causa um repaint, etc.

Em contraste, percorrer uma estrutura de dados JavaScript tem um perfil de desempenho muito mais previsível e razoável e, além disso, uma árvore vnode é implementada de forma que permite que os mecanismos JavaScript modernos apliquem otimizações agressivas, como hidden classes para um desempenho ainda melhor.

Diferenças de m.render ​

Um componente renderizado via m.mount atualiza automaticamente em resposta a eventos de visualização, chamadas m.redraw() ou chamadas m.request(). Vnodes renderizados via m.render() não.

m.mount() é adequado para desenvolvedores de aplicativos que integram widgets Mithril.js em códigos existentes onde o roteamento é tratado por outra biblioteca ou framework, enquanto ainda desfrutam das facilidades de atualização automática do Mithril.js.

m.render() é adequado para autores de bibliotecas que desejam controlar manualmente a renderização (por exemplo, ao conectar a um roteador de terceiros ou usar bibliotecas de camada de dados de terceiros como Redux).

Pager
Anteriorrender(element, vnodes)
Próximoroute(root, defaultRoute, routes)

Distribuído sob a Licença MIT.

Copyright (c) 2024 Mithril Contributors

https://mithril.js.org/mount.html

Distribuído sob a Licença MIT.

Copyright (c) 2024 Mithril Contributors