集成本地存储的基本思路

在Vue应用中集成本地存储功能,通常使用浏览器的localStorage或sessionStorage。localStorage适合长期保存数据,而sessionStorage仅在当前会话期间有效。对于待办应用,选择localStorage更为合适,因为用户希望任务数据在浏览器关闭后仍然存在。

安装Vue及相关依赖

确保项目已安装Vue CLI。如未安装,可通过以下命令安装:

npm install -g @vue/cli

创建一个新的Vue项目:

vue create todo-app

进入项目目录并安装必要的依赖:

cd todo-app
npm install

创建待办组件

src/components目录下创建TodoList.vue文件。该组件负责显示待办事项列表,并提供添加、删除和完成任务的交互功能。

<template>
  <div>
    <input v-model="newTodo" @keyup.enter="addTodo" placeholder="添加新任务">
    <ul>
      <li v-for="(todo, index) in todos" :key="index">
        <input type="checkbox" v-model="todo.done">
        <span :class="{ done: todo.done }">{{ todo.text }}</span>
        <button @click="removeTodo(index)">删除</button>
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      newTodo: '',
      todos: []
    }
  },
  methods: {
    addTodo() {
      if (this.newTodo.trim() === '') return
      this.todos.push({ text: this.newTodo, done: false })
      this.newTodo = ''
      this.saveTodos()
    },
    removeTodo(index) {
      this.todos.splice(index, 1)
      this.saveTodos()
    },
    saveTodos() {
      localStorage.setItem('todos', JSON.stringify(this.todos))
    },
    loadTodos() {
      const savedTodos = localStorage.getItem('todos')
      if (savedTodos) {
        this.todos = JSON.parse(savedTodos)
      }
    }
  },
  mounted() {
    this.loadTodos()
  }
}
</script>

<style>
.done {
  text-decoration: line-through;
}
</style>

主应用集成

在主应用文件src/App.vue中引入并使用待办组件:

<template>
  <div id="app">
    <h1>待办事项</h1>
    <TodoList />
  </div>
</template>

<script>
import TodoList from './components/TodoList.vue'

export default {
  name: 'App',
  components: {
    TodoList
  }
}
</script>

测试本地存储功能

运行开发服务器:

npm run serve

在浏览器中打开应用,添加几个待办事项并刷新页面。数据应被保留,因为已成功集成localStorage功能。

优化与扩展

为提高用户体验,可以考虑添加以下功能:

  • 编辑现有待办事项
  • 分类或标签功能
  • 数据备份与恢复选项
  • 响应式设计优化

对于更复杂的应用,可能需要考虑使用IndexedDB或第三方库如vuex-persistedstate来管理本地存储。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐