ForgejComponent
it

jComponent

Scorciatoie dello stato: INC, TOGGLE, NUL, UPDATE, UNWATCH, WAIT, BLOCKED e CACHEPATH

jComponent 20 · jcomponent@20 jcomponentfrontendstateutilities Eseguita con jComponent 20

Queste funzioni lavorano sullo stato di jComponent tramite percorso ('user.visits'), come SET() e GET(), e ognuna notifica i componenti e gli osservatori del percorso.

  • INC(path, [value]) somma value (predefinito 1) a un numero; quando il valore è vuoto parte da 0 e quando è un testo viene prima letto come numero.
  • TOGGLE(path) cambia un booleano (un valore vuoto diventa true). NUL(path) e il suo alias NULL(path) impostano il valore a null.
  • UPDATE(path) (alias UPD) notifica tutti quelli che usano il percorso senza cambiare il valore: usalo dopo aver modificato un oggetto o un array sul posto.
  • UNWATCH(path, [fn]) rimuove gli osservatori del percorso creati con WATCH(); con fn, solo quello.
  • WAIT(fn or path, callback) esegue callback appena la funzione restituisce qualcosa di vero, o il percorso ha un valore. Controlla subito e poi ogni 500 ms.
  • BLOCKED(key, timeout, [callback]) restituisce false la prima volta e true per i successivi timeout ms (funziona anche '5 seconds'): è una protezione contro un doppio clic o una richiesta ripetuta. Il callback viene eseguito solo quando non è bloccato.
  • CACHEPATH(path, expire, [default]) mantiene un valore dello stato nella cache (CACHE()): imposta il percorso al valore in cache quando c'è (o a default, che può essere una funzione) e salva ogni cambiamento sotto la chiave path_path.
  • Un percorso è un percorso nello stato della pagina, quindi un nome come name o location è una proprietà di window: usa nomi tuoi (person, prefs.mode).
  • setTimeout2(id, fn, ms, [limit], [param]) è un setTimeout() con debounce: richiamarlo con lo stesso id riavvia il timer, quindi fn viene eseguito una volta, ms dopo l'ultima chiamata. Con limit il timer viene riavviato al massimo quel numero di volte e le chiamate successive sono ignorate finché fn non è stato eseguito, così un flusso di chiamate non può rimandarlo per sempre. clearTimeout2(id) lo annulla e restituisce true quando ce n'era uno.
  • CLONE(value) fa una copia profonda (le date restano date), COPY(from, to) copia in profondità le proprietà di un oggetto in un altro e restituisce to. NOOP è una funzione che non fa nulla e WARN(...) scrive su 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>
Provalo nel tuo browser

Modifica l'esempio ed eseguilo. Gira in un frame isolato del tuo browser; nulla viene inviato al nostro server.

Anteprima