Используя этот знакомый пример приложения, вы узнаете все о современном способе хранения веб-данных.
LocalStorage — это веб-API, встроенный в браузеры, который позволяет веб-приложениям хранить пары «ключ-значение» на вашем локальном устройстве. Он предоставляет простой способ хранения данных даже после закрытия браузера.
Вы можете интегрировать LocalStorage со своими приложениями Vue для хранения списков и других данных небольшого размера. Это позволяет вам хранить пользовательские данные в разных сеансах приложения.
После этого руководства у вас будет функциональное приложение Vue to-do, которое сможет добавлять и удалять задачи, сохраняя данные с помощью LocalStorage.
Настройка приложения Vue To-Do
Прежде чем приступить к кодированию, убедитесь, что у вас есть установил Node и NPM на ваше устройство.
Чтобы создать новый проект, выполните следующую команду npm:
npm create vue
Команде потребуется выбрать предустановку для вашего нового приложения Vue перед созданием и установкой необходимых зависимостей.
Для этого приложения списка дел вам не понадобятся дополнительные функции, поэтому выберите «Нет» для всех доступных пресетов.
После настройки проекта вы можете приступить к созданию приложения для дел с помощью LocalStorage.
Создание приложения To-Do
В этом руководстве вы создадите два компонента Vue: App.vue для общей структуры и Todo.vue для отображения списка задач.
Создание компонента To-Do
Для компонента Todo создайте новый файл, src/компоненты/Todo.vue. Этот файл будет обрабатывать структуру списка задач.
Вставьте следующий код в Todo.vue файл:
<scriptsetup>
const props = defineProps(['todos']);
const emit = defineEmits(['remove-todo']);const removeTodo = (index) => {
emit('remove-todo', index);
};
script>
<template>
<divclass="todo-list">
<ul>
<liv-for="(todo, index) in props.todos":key="index"class="todo-item">
{{ todo.text }}
<button @click="removeTodo(index)"class="remove-button">
Remove
button>
li>
ul>
div>
template>
В приведенном выше фрагменте кода подробно описана структура Делать компонент. Он настраивает компонент на получение данных и отправку событий посредством использования свойств и пользовательских событий соответственно.
Для дальнейшего объяснения в коде используется Реквизиты Vue для взаимодействия между компонентами чтобы получить дела массив из его родительского компонента, App.vue. Затем он использует Директива v-for для рендеринга списков для перебора полученного массива задач.
Код также генерирует пользовательское событие, удалить-todo, с полезной нагрузкой индекс. Это позволяет удалить конкретную задачу с определенным индексом в массиве todos.
При нажатии кнопки Удалять Кнопка, фрагмент запускает отправку пользовательского события родительскому компоненту. Это означает, что вы нажали кнопку, предложив выполнить соответствующую функцию, определенную в родительском компоненте App.vue.
Создание компонента представления приложения
Отправляйтесь в App.vue чтобы продолжить создание приложения Todo. Приложение компонент будет обрабатывать добавление новых задач и рендеринг Делать компонент.
Вставьте следующее сценарий заблокируйте в свой файл App.vue:
<scriptsetup>
import Todo from "./components/Todo.Vue";
import { ref } from "vue";const newTodo = ref("");
const todos = ref([]);const addTodo = () => {
if (newTodo.value.trim() "") return;
todos.value.push({ text: newTodo.value });
newTodo.value = "";
saveToLocalStorage();
};const removeTodo = (key) => {
todos.value.splice(key, 1);
saveToLocalStorage();
};const saveToLocalStorage = () => {
localStorage.setItem("todos", JSON.stringify(todos.value));
};const savedTodos = localStorage.getItem("todos");
if (savedTodos) {
todos.value.push(...JSON.parse(savedTodos));
}
script>
Приведенный выше фрагмент кода описывает логику App.vue компонент. Фрагмент импортирует Делать компонент и инициализирует реактивные переменные с помощью Vue Composition API.
Код начинается с импорта компонента Todo и ссылка функция по указанному пути и вид, соответственно.
Затем фрагмент инициализирует реактивную строку, новыйTodo, чтобы сохранить задачу, которую вы введете. Он также инициализирует пустой реактивный дела массив, содержащий список задач.
добавитьTodo Функция добавляет новые задачи в массив todos. Если newTodo не пусто, оно помещается в массив при подтверждении и сбрасывает значение newTodo, чтобы вы могли добавлять дополнительные задачи.
Функция addTodo также вызывает сохранитьToLocalStorage, который сохраняет массив задач в LocalStorage браузера. В фрагменте используется setItem метод для достижения этой цели и преобразует массив задач в строку JSON перед сохранением.
Он также определяет удалитьTodo функция, которая принимает ключ в качестве параметра. Он использует этот ключ для удаления соответствующего делать из массива задач. После удаления функция removeTodo вызывает saveToLocalStorage для обновления данных LocalStorage.
Наконец, в коде используется getItem метод, доступный LocalStorage, для получения ранее сохраненных задач с помощью ключа todos. Если вы сохранили задачи в LocalStorage браузера, код помещает их в массив todos.
Теперь, когда вы обработали логику компонента App.vue, вставьте следующий код в шаблон блок вашего приложения Vue для создания пользовательского интерфейса:
<template>
<divclass="app">
<h1>To do Listh1>
<divclass="add-todo">
<inputv-model="newTodo" @keyup.enter="addTodo"
placeholder="Add a new task" class="todo-input" />
<button @click="addTodo"class="add-button">Addbutton>
div>
<Todo:todos="todos" @remove-todo="removeTodo" />
div>
template>
В шаблоне используется v-модель, метод привязки данных в Vue чтобы связать введенную задачу с новыйTodo реактивная струна. В шаблоне также используется в-ондиректива для обработки событий в Vue через его стенографию (@).
Он использует v-on для прослушивания обоих щелкнуть и входить ключевые события для подтверждения нового Todo.
Наконец, шаблон использует Делать компонент, который вы создали первым для отображения списка задач. :тодос синтаксис передает дела массив в качестве опоры для компонента Todo.
@remove-todo синтаксис настраивает прослушиватель событий для захвата пользовательского события, созданного компонентом Todo, и вызова удалитьTodo функция в ответ.
Теперь, когда вы завершили работу над приложением, вы можете выбрать его стиль по своему вкусу. Вы можете просмотреть свое приложение, выполнив эту команду:
npm run dev
Вы должны увидеть такой экран:
Вы можете добавлять или удалять задачи в приложении Todo. Более того, благодаря интеграции LocalStorage вы можете обновить приложение или полностью выйти из него; ваш тщательно подобранный список дел останется неизменным.
Важность LocalStorage
Интеграция LocalStorage в веб-приложения важна как для новичков, так и для опытных разработчиков. LocalStorage знакомит новичков с вопросами сохранения данных, позволяя им хранить и извлекать пользовательский контент.
LocalStorage важен, поскольку вы можете гарантировать, что ваши пользовательские данные останутся нетронутыми в разных сеансах. LocalStorage устраняет необходимость в постоянной связи с сервером, что приводит к ускорению загрузки и повышению скорости отклика веб-приложений.