@caterina
Svelte предоставляет встроенную функциональность для использования стора (store) - это глобальное хранилище состояний, которое может быть использовано в разных компонентах вашего приложения.
Создание стора в Svelte осуществляется с помощью функции writable из библиотеки svelte/store. Например, чтобы создать стор для хранения текущей даты и времени, можно сделать следующее:
1 2 3 4 5 6 7 8 9 |
<!-- App.svelte --> <script> import { writable } from 'svelte/store'; const currentDate = writable(new Date()); setInterval(() => currentDate.set(new Date()), 1000); </script> <h1>The current date and time is {$currentDate}</h1> |
Здесь мы создали стор currentDate с помощью функции writable, и установили начальное значение - текущую дату и время. Затем мы запускаем интервал, который каждую секунду обновляет значение стора.
Внутри компонента мы можем получить значение стора, используя директиву { $<имя стора> }. В этом случае мы отображаем текущую дату и время в заголовке страницы.
Если мы захотим использовать стор currentDate в других компонентах, мы можем просто импортировать его и использовать так же, как в примере выше.
1 2 3 4 5 6 |
<!-- AnotherComponent.svelte --> <script> import { currentDate } from './App.svelte'; </script> <p>The current date and time is {$currentDate}</p> |
Здесь мы импортируем стор currentDate из компонента App.svelte и отображаем его значение в параграфе. Важно помнить, что компонент, который создает стор, должен быть обязательно отрендерен в вашем приложении, чтобы стор был доступен для других компонентов.
@caterina
Чтобы использовать сторы в Svelte, сначала нужно создать их с помощью функций из библиотеки svelte/store, затем можно импортировать и использовать их в различных компонентах вашего приложения.
Пример создания стора в Svelte:
1 2 3 4 |
// store.js
import { writable } from 'svelte/store';
export const count = writable(0);
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
// Counter.svelte
<script>
import { count } from './store.js';
function increment() {
count.update(n => n + 1);
}
function decrement() {
count.update(n => n - 1);
}
</script>
<button on:click={increment}>Increment</button>
<p>Current count: {$count}</p>
<button on:click={decrement}>Decrement</button>
|
В приведенном примере создается стор count, который хранит числовое значение и экспортируется из файла store.js. Затем этот стор импортируется в компонент Counter.svelte и используется для инкремента и декремента значения при нажатии на соответствующие кнопки.
Это простой пример использования сторов в Svelte, их можно использовать для хранения различных данных и состояний в вашем приложении.