ForgejComponent
nl

jComponent

Statussnelkoppelingen: INC, TOGGLE, NUL, UPDATE, UNWATCH, WAIT, BLOCKED en CACHEPATH

jComponent 20 · jcomponent@20 jcomponentfrontendstateutilities Uitgevoerd met jComponent 20

Deze functies werken op de status van jComponent via een pad ('user.visits'), zoals SET() en GET(), en elk van hen meldt de componenten en de watchers van het pad.

  • INC(path, [value]) telt value (standaard 1) op bij een getal; als de waarde leeg is begint het bij 0 en als het een tekst is wordt die eerst als getal gelezen.
  • TOGGLE(path) wijzigt een boolean (een lege waarde wordt true). NUL(path) en zijn alias NULL(path) zetten de waarde op null.
  • UPDATE(path) (alias UPD) meldt iedereen die het pad gebruikt zonder de waarde te wijzigen: gebruik het nadat je een object of array ter plekke hebt gewijzigd.
  • UNWATCH(path, [fn]) verwijdert de met WATCH() gemaakte watchers van het pad; met fn alleen die ene.
  • WAIT(fn or path, callback) voert callback uit zodra de functie iets waars teruggeeft, of het pad een waarde heeft. Het controleert meteen en daarna elke 500 ms.
  • BLOCKED(key, timeout, [callback]) geeft de eerste keer false terug en daarna true gedurende timeout ms ('5 seconds' werkt ook): het is een bescherming tegen een dubbele klik of een herhaald verzoek. De callback draait alleen als het niet geblokkeerd is.
  • CACHEPATH(path, expire, [default]) bewaart een waarde van de status in de cache (CACHE()): het zet het pad op de gecachete waarde als die er is (of op default, dat een functie kan zijn) en slaat elke wijziging op onder de sleutel path_path.
  • Een pad is een pad in de status van de pagina, dus een naam als name of location is een eigenschap van window: gebruik eigen namen (person, prefs.mode).
  • setTimeout2(id, fn, ms, [limit], [param]) is een gedebouncete setTimeout(): opnieuw aanroepen met dezelfde id herstart de timer, zodat fn één keer draait, ms na de laatste aanroep. Met limit wordt de timer hoogstens zo vaak herstart en worden de volgende aanroepen genegeerd tot fn heeft gedraaid, zodat een stroom aanroepen hem niet eindeloos kan uitstellen. clearTimeout2(id) annuleert hem en geeft true terug als er een was.
  • CLONE(value) maakt een diepe kopie (datums blijven datums), COPY(from, to) kopieert de eigenschappen van het ene object diep naar het andere en geeft to terug. NOOP is een functie die niets doet en WARN(...) schrijft naar 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>
Probeer het in je browser

Bewerk het voorbeeld en voer het uit. Het draait in een geïsoleerd frame in je browser; er wordt niets naar onze server gestuurd.

Voorbeeld