Se você vem de React ou Vue, os primeiros dias no $mol são gastos procurando coisas que não existem: computed, watch, useEffect, onMounted, um fetch num hook de ciclo de vida. Elas não estão escondidas em algum canto da API; o modelo não tem lugar para elas. Esta página é a versão de cinco minutos desse modelo. Leia-a antes de Views, e volte aqui quando um nome familiar sumir.
Nada é calculado até alguém ler. Uma view renderiza lendo suas propriedades; cada propriedade lê o que precisa; a cadeia de dependências se monta sozinha a partir dessas leituras. Não há inscrição a declarar nem watch a registrar: a leitura é a inscrição.1$my_profile$mol_view2 sub /3<= Name $mol_view4 sub /<= name \1namespace $.$${2export class $my_profileextends$.$my_profile{3@ $mol_mem4user(){5return this.$.$mol_fetch.json('https://api.example.com/me')as{name:string}6}7name(){8return this.user().name9}10}11}Renderizar Name lê name(), name() lê user(), user() vai à rede. Ninguém contou à view sobre a requisição e ninguém contou à requisição sobre a view. Quando user() muda, tudo o que o leu recalcula, e nada mais.
Não há mounted, não há useEffect, não há created. Os dados são pedidos ao ler uma propriedade, e uma view lê suas propriedades quando renderiza. Então o exemplo acima carrega o usuário no momento em que $my_profile aparece na tela, e não antes. Quando a view sai da tela, ninguém mais lê user(), e a célula é liberada junto com a view.É isso que substitui por inteiro o padrão «fetch no mount»: a view pede o que precisa, e o framework decide quando pedir. O carregamento não está preso a um evento de página; está preso a estar visível.
Um único método com um argumento opcional é, ao mesmo tempo, getter, setter, valor calculado e estado:1@ $mol_mem2count(next?:number){3return next??04}Chamado sem argumento ele lê, chamado com um argumento ele escreve. @ $mol_mem transforma o método numa célula em cache que recalcula quando algo que ela leu mudou. Um valor calculado é apenas um método @ $mol_mem que lê outros métodos. Um watcher não é necessário: um efeito colateral pertence a um evento, e um manipulador de evento é um método marcado com @ $mol_action.1@ $mol_mem2doubled(){3return this.count()*24}56@ $mol_action7increment(){8this.count(this.count()+1)9}Editar esta página no GitHubIsto foi útil?SimNãoAnteriorIntroduçãoPróximoPrimeiros passosNesta páginaPull, não pushSem ciclo de vidaUma propriedade é uma célulaCódigo síncrono que esperaTudo é uma sobrescritaComo ler os fontesNomesPróximoType to search the documentation.