Alpine.store
Alpine предлагает глобальное управление состоянием через API Alpine.store()
.
Регистрация хранилища
Вы можете либо определить хранилище Alpine внутри слушателя alpine:init
(в случае включения Alpine через тег <script>
), либо определить его перед ручным вызовом Alpine.start()
(в случае импорта Alpine в сборке):
Доступ к хранилищам
В выражениях Alpine можно получить доступ к данным из любого хранилища, используя магическое свойство $store
:
Вы также можете изменять свойства внутри хранилища, и всё, что зависит от этих свойств, будет автоматически реагировать. Например:
Кроме того, можно получить доступ к хранилищу извне, используя Alpine.store()
, опустив второй параметр, как показано ниже:
Инициализация хранилищ
Если в хранилище Alpine предусмотреть метод init()
, то он будет выполнен сразу после регистрации хранилища. Это полезно для инициализации любого состояния внутри хранилища разумными начальными значениями.
Обратите внимание на недавно добавленный метод init()
в приведённом примере. При таком добавлении переменная хранилища on
будет установлена в соответствии с предпочтениями цветовой схемы браузера до того, как Alpine отобразит что-либо на странице.
Хранилища с одним значением
Если вам не нужен целый объект для хранилища, вы можете установить и использовать в качестве хранилища любые данные.
Вот пример выше, но проще использовать его как логическое значение:
Проверка знаний
-
Как получить доступ к хранилищу Alpine с именем
myStore
? -
Когда выполняется метод
init
внутри хранилища?