Сброс состояния в Nuxt
Общие ключи живут, пока пользователь
не закроет вкладку или пока мы сами
не удалим ячейку. Для выхода из аккаунта,
очистки корзины или сброса черновика
заметки в Nuxt есть функция clearNuxtState.
Она принимает имя ключа или список имён
и убирает сохранённые значения из памяти
приложения.
После сброса следующий вызов useState
с тем же ключом снова выполнит функцию
инициализации и создаст свежее начальное
значение, как при первом заходе на сайт.
Если нужно обнулить сразу несколько
ключей, в функцию clearNuxtState
передают несколько строк. Вызов без
аргументов удаляет всё общее состояние
приложения - так делают редко, только
когда точно нужен полный сброс сессии
на клиенте.
На странице корзины после сброса ключа
cartCount снова вызываем функцию
useState, чтобы на экране появилось
свежее начальное число:
<script setup>
let cartCount = useState('cartCount', () => 0);
function clearCart() {
clearNuxtState('cartCount');
cartCount = useState('cartCount', () => 0);
}
</script>
<template>
<h1>
Cart
</h1>
<p>
Items: {{ cartCount }}
</p>
<button type="button" @click="clearCart">
Clear cart
</button>
</template>
На странице избранного выведите общий
счётчик добавленных товаров и кнопку
«Clear favorites», которая обнуляет
ключ счётчика через clearNuxtState.
После очистки снова увеличьте счётчик и убедитесь, что он начинается с начального значения, а не с числа до сброса.