Ниже приведены некоторые варианты обработки постоянного хранилища, однако ваша проблема в вашем коде заключается в настройке хранилища на основе вычисляемого свойства.В тот момент, когда компонент будет отключен, вычисленное свойство вернется к значению по умолчанию, в вашем случае 0. Это можно увидеть в действии, если вы измените свой счет по умолчанию с 0 на 1 и обновите свое приложение, вы заметите, что localstorage возвращается к1 после теста.
РЕДАКТИРОВАТЬ: Добавление закомментированного ответа для получения дополнительной информации.
Вы можете переместить его в нажатие кнопки, возможно, при сохранении или отправке, или даже добавить некоторыелогика для вычислений, если вы действительно хотите, чтобы она была вычислена.
if(this.healthScore != 0) {
localStorag.setItem(this.healthScore)
}
Ваш запрос должен получить из localStorage и присвоить обратно локальной переменной
getHealthScore() {
this.healthScore = localStorage.getItem('SavedHealthScore')
},
Таким образом, он будет устанавливать локальное хранилище только в том случае, если результат теста не равен 0.
Вам необходимо вызывать хранилище из другого события, а не из вычисляемого свойства.Или вам нужно добавить логику, чтобы предотвратить постоянное сохранение вычисляемого в локальное хранилище
(Вы уже знаете, но я все равно сообщу вам, если это будет полезно)
Варианты постоянного хранения:
1) вы используете браузер localStorage
и сохраняете там информацию, которая будет сохраняться до тех пор, пока пользователь не очистит свой браузер, однако, в вашем случае вы можете рассмотреть sessionStorage
так как он будет очищен, когда они покинут ваше приложение.Нет необходимости устанавливать какие-либо пакеты NPM для них, поскольку они уже доступны.Приведенный ниже фрагмент кода на случай, если вы хотите создать один метод, если вы хотите вместо этого использовать Session, просто измените localStorage
на sessionStorage
и альт.
**
* Adds an item to Storage
* @param key The Key value
* @param value The String Value to be Stored
*/
export function AddToStorage(key: string, value: string): any {
localStorage.setItem(key, value);
}
2) Еще немногоболее сложный выбор, но вы увидите, что он используется в проектах среднего и большого уровня - Vuex
, который является способом обработки состояния Vue при переходе через приложение.Настройка для него немного сложна и излишня для вашего проекта, который уже почти закончен, но если вы хотите окунуться в это, это будет хорошей возможностью.