ForgejComponent
bg

jComponent

Преки пътища за състоянието: INC, TOGGLE, NUL, UPDATE, UNWATCH, WAIT, BLOCKED и CACHEPATH

jComponent 20 · jcomponent@20 jcomponentfrontendstateutilities Изпълнено с jComponent 20

Тези функции работят със състоянието на jComponent по път ('user.visits'), като SET() и GET(), и всяка от тях уведомява компонентите и наблюдателите на пътя.

  • INC(path, [value]) добавя value (по подразбиране 1) към число; когато стойността е празна, започва от 0, а когато е текст, първо се чете като число.
  • TOGGLE(path) променя булева стойност (празна стойност става true). NUL(path) и неговият псевдоним NULL(path) задават стойността на null.
  • UPDATE(path) (псевдоним UPD) уведомява всички, които използват пътя, без да променя стойността: използвайте го, след като сте променили обект или масив на място.
  • UNWATCH(path, [fn]) премахва наблюдателите на пътя, създадени с WATCH(); с fn само този.
  • WAIT(fn or path, callback) изпълнява callback, щом функцията върне нещо истинно или пътят има стойност. Проверява веднага и после на всеки 500 ms.
  • BLOCKED(key, timeout, [callback]) връща false първия път и true през следващите timeout ms (работи и '5 seconds'): защита е срещу двойно кликване или повторна заявка. callback се изпълнява само когато не е блокирано.
  • CACHEPATH(path, expire, [default]) държи стойност на състоянието в кеша (CACHE()): задава пътя на кешираната стойност, когато има такава (или на default, което може да е функция), и записва всяка промяна под ключа path_path.
  • Пътят е път в състоянието на страницата, така че име като name или location е свойство на window: използвайте собствени имена (person, prefs.mode).
  • setTimeout2(id, fn, ms, [limit], [param]) е setTimeout() с debounce: повторното извикване със същия id рестартира таймера, така че fn се изпълнява веднъж, ms след последното извикване. С limit таймерът се рестартира най-много толкова пъти, а следващите извиквания се игнорират, докато fn не се изпълни, така че поток от извиквания не може да го отлага вечно. clearTimeout2(id) го отменя и връща true, когато е имало такъв.
  • CLONE(value) прави дълбоко копие (датите остават дати), COPY(from, to) копира дълбоко свойствата на един обект в друг и връща to. NOOP е функция, която не прави нищо, а WARN(...) пише в 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>
Опитайте в браузъра си

Редактирайте примера и го изпълнете. Работи в изолирана рамка във вашия браузър; нищо не се изпраща към нашия сървър.

Преглед