ForgejComponent
pt

jComponent

Atalhos do estado: INC, TOGGLE, NUL, UPDATE, UNWATCH, WAIT, BLOCKED e CACHEPATH

jComponent 20 · jcomponent@20 jcomponentfrontendstateutilities Executada com jComponent 20

Estas funções trabalham com o estado do jComponent por caminho ('user.visits'), como SET() e GET(), e todas elas notificam os componentes e os observadores do caminho.

  • INC(path, [value]) soma value (por omissão 1) a um número; quando o valor está vazio começa em 0 e quando é um texto é lido primeiro como número.
  • TOGGLE(path) altera um booleano (um valor vazio passa a true). NUL(path) e o seu alias NULL(path) põem o valor a null.
  • UPDATE(path) (alias UPD) notifica todos os que usam o caminho sem alterar o valor: use-o depois de modificar um objeto ou um array no próprio lugar.
  • UNWATCH(path, [fn]) remove os observadores do caminho criados com WATCH(); com fn, apenas esse.
  • WAIT(fn or path, callback) executa callback assim que a função devolve algo verdadeiro, ou o caminho tem um valor. Verifica logo e depois a cada 500 ms.
  • BLOCKED(key, timeout, [callback]) devolve false à primeira vez e true durante os timeout ms seguintes (também serve '5 seconds'): é uma proteção contra um duplo clique ou um pedido repetido. O callback só corre quando não está bloqueado.
  • CACHEPATH(path, expire, [default]) guarda um valor do estado na cache (CACHE()): põe o caminho no valor em cache quando existe (ou em default, que pode ser uma função) e guarda cada alteração sob a chave path_path.
  • Um caminho é um caminho no estado da página, por isso um nome como name ou location é uma propriedade de window: use nomes seus (person, prefs.mode).
  • setTimeout2(id, fn, ms, [limit], [param]) é um setTimeout() com debounce: chamá-lo de novo com o mesmo id reinicia o temporizador, pelo que fn corre uma vez, ms depois da última chamada. Com limit o temporizador é reiniciado no máximo esse número de vezes e as chamadas seguintes são ignoradas até fn ter corrido, de modo que uma sequência de chamadas não o pode adiar para sempre. clearTimeout2(id) cancela-o e devolve true quando havia um.
  • CLONE(value) faz uma cópia profunda (as datas continuam datas), COPY(from, to) copia em profundidade as propriedades de um objeto para outro e devolve to. NOOP é uma função que não faz nada e WARN(...) escreve em console.warn.
public/index.html
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8" />
	<title>jComponent</title>
	<link rel="stylesheet" href="//cdn.componentator.com/spa.min@20.css" />
	<script src="//cdn.componentator.com/spa.min@20.js"></script>
</head>
<body>
	<p class="out"></p>
	<script>

		window.sample = { watched: 0 };

	</script>
</body>
</html>
Experimente no seu navegador

Edite o exemplo e execute-o. Corre numa moldura isolada do seu navegador; nada é enviado para o nosso servidor.

Pré-visualização