Для сохранения выбранного option у элемента select при перезагрузке страницы во Vue.js, есть несколько подходов. Вот два наиболее распространенных:
1. Использование Local Storage:
Этот подход предполагает сохранение выбранного значения в Local Storage браузера и восстановление его при повторном открытии страницы.
Для этого можно использовать жизненный цикл Vue.js, а именно методы created и mounted. В методе created мы обратимся к Local Storage и получим сохраненное значение, а затем в методе mounted установим это значение в переменную, связанную с элементом select.
Вот пример кода:
<template> <select v-model="selectedOption"> <!-- options go here --> </select> </template> <script> export default { data() { return { selectedOption: '', }; }, created() { let selectedValue = localStorage.getItem('selectedOption'); if (selectedValue) { this.selectedOption = selectedValue; } }, mounted() { localStorage.setItem('selectedOption', this.selectedOption); }, }; </script>
2. Использование Vuex:
Если вы используете Vuex для управления состоянием приложения, можно сохранить выбранное значение в хранилище Vuex и восстановить его при повторной загрузке страницы.
Для этого нужно определить геттер и мутацию в хранилище Vuex, которые будут отслеживать и обновлять значение выбранного option.
Вот пример кода:
<template> <select v-model="selectedOption"> <!-- options go here --> </select> </template> <script> export default { computed: { selectedOption: { get() { return this.$store.state.selectedOption; }, set(value) { this.$store.commit('setSelectedOption', value); }, }, }, }; </script> // Vuex store import Vue from 'vue'; import Vuex from 'vuex'; Vue.use(Vuex); export default new Vuex.Store({ state: { selectedOption: '', }, mutations: { setSelectedOption(state, value) { state.selectedOption = value; }, }, });
Независимо от выбранного подхода, вам необходимо обратить внимание на то, что хранилище браузера может быть очищено пользователем или в результате выполнения других действий, поэтому всегда стоит предусмотреть дополнительные проверки и обработку возможных ошибок.