vue实现本地存储添加删除修改功能

实现本地存储添加删除修改功能,可以通过vue的官方插件vue-localStorage进行实现。

安装vue-localStorage插件

首先需要在项目中安装vue-localStorage插件,可以通过npm进行安装:

npm install vue-localstorage --save

在main.js中引入插件

在main.js文件中,引入vue-localStorage插件并在Vue中进行全局注册:

import VueLocalStorage from 'vue-localstorage'

Vue.use(VueLocalStorage)

使用localstorage存储数据

通过vue-localStorage插件提供的$LocalStorage对象实现数据的本地存储。例如下列代码存储一个数组到localStorage中:

this.$localStorage.set('todos', [
    {id: 1, text: '学习Vue', done: false},
    {id: 2, text: '学习React', done: false},
    {id: 3, text: '学习Angular', done: true}
])

读取localstorage中的数据

读取localStorage中的数据可以使用$localStorage.get方法。例如下列代码获取名为‘todos’的存储数据:

const todos = this.$localStorage.get('todos')

修改localstorage中的数据

可以通过修改数组对象中的某个属性来更新localStorage中的数据。例如下列代码更新id为2的todo的done属性:

// 获取todos
const todos = this.$localStorage.get('todos')
// 查找id为2的todo
const todo = todos.find((t) => t.id === 2)
// 修改done属性
todo.done = true
// 将修改后的数据存入localStorage
this.$localStorage.set('todos', todos)

删除localstorage中的数据

可以通过数组的splice方法将某个元素从数组中删除,然后将更新后的数组再次存储到localStorage中。例如下列代码删除id为2的todo:

// 获取todos
let todos = this.$localStorage.get('todos')
// 查找id为2的todo的索引
const todoIndex = todos.findIndex((t) => t.id === 2)
// 从数组中删除该todo
todos.splice(todoIndex, 1)
// 将更新后的todos存入localStorage
this.$localStorage.set('todos', todos)

示例说明

下面两个示例说明分别对应添加和删除功能的实现。

示例一:添加功能

下列代码使用v-model绑定input的值,然后通过点击button将输入框中的值添加到存储的todos数组中:

<template>
  <div>
    <input type="text" v-model="newTodo">
    <button @click="addTodo">添加</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      newTodo: ''
    }
  },
  methods: {
    addTodo() {
      let todos = this.$localStorage.get('todos') || []
      const newId = todos.length ? todos[todos.length - 1].id + 1 : 1
      todos.push({id: newId, text: this.newTodo, done: false})
      this.$localStorage.set('todos', todos)
      this.newTodo = ''
    }
  }
}
</script>

示例二:删除功能

下列代码根据todo的id查找并删除todo,实现删除功能:

<template>
  <div>
    <ul>
      <li v-for="todo in todos" :key="todo.id">
        {{ todo.text }}
        <button @click="deleteTodo(todo.id)">删除</button>
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      todos: []
    }
  },
  created() {
    // 从localStorage中读取todos
    this.todos = this.$localStorage.get('todos') || []
  },
  methods: {
    deleteTodo(id) {
      let todos = this.$localStorage.get('todos')
      const todoIndex = todos.findIndex((t) => t.id === id)
      todos.splice(todoIndex, 1)
      this.$localStorage.set('todos', todos)
    }
  }
}
</script>

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue实现本地存储添加删除修改功能 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • vue-vuex中使用commit提交mutation来修改state的方法详解

    当我们使用Vue.js + Vuex进行项目开发时,我们需要通过commit提交mutation来修改state。以下是使用commit提交mutation修改state的详细步骤: 1. 创建Vuex Store 我们首先要在项目中创建Vuex Store,Store是一个对象,包含着我们需要管理的状态(state)、变更状态的方法(actions、mut…

    Vue 2023年5月28日
    00
  • Nuxt.js实现一个SSR的前端博客的示例代码

    下面就是“Nuxt.js实现一个SSR的前端博客的完整攻略”。 Nuxt.js简介 Nuxt.js 是一个基于 Vue.js 的通用应用框架,它可以帮助我们快速搭建一个 Vue.js 应用(如 SPA、SSR、静态 生成),并且还提供了自动化的构建和部署功能。 步骤 1. 创建项目 首先,我们需要安装 Node.js 和 Npm。然后,我们可以使用 Npm …

    Vue 2023年5月28日
    00
  • vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)

    Vue.js中的自定义指令是一种非常重要的扩展机制,可以实现在标准DOM元素上添加额外的行为,从而实现更加强大的功能。 Vue.js提供了两种自定义指令的实现方法,一种是内部自定义指令,一种是全局自定义指令。下面将详细讲解如何使用Directive实现这两种自定义指令。 内部自定义指令 内部自定义指令是指在Vue.js组件的template中定义的指令,在组…

    Vue 2023年5月28日
    00
  • 使用vue3重构拼图游戏的实现示例

    首先我们来讲解一下使用Vue3重构拼图游戏的实现示例。 步骤1:创建Vue3项目和引入所需依赖 创建一个Vue3项目可以使用Vue-cli来完成,安装完毕后,我们需要引入所需依赖。首先是引入Vue3: import { createApp } from ‘vue’ 然后是引入Element UI: import ElementPlus from ‘eleme…

    Vue 2023年5月28日
    00
  • vue中改变了vuex数据视图不更新,也监听不到的原因及解决

    在vue中使用vuex进行数据管理时,有时候会出现改变了vuex数据,但是页面视图并没有更新,也没有触发相应的监听事件的情况。这通常是因为没有正确地使用Vue的响应式机制和Vuex的状态更新机制引起的。 以下是解决这个问题的攻略,包含两个示例说明。 1. 使用Vue的响应式机制 在Vue中,只有通过Vue提供的响应式方法或函数才能保证更新视图。通过JavaS…

    Vue 2023年5月27日
    00
  • vue.js指令v-for使用以及下标索引的获取

    Vue.js 是一款流行的渐进式 JavaScript 框架,为开发者提供了丰富多样的语法和指令。其中的 v-for 指令用于遍历数组或对象并渲染相应的内容。下面,我们详细讲解 v-for 的使用及下标索引的获取。 基础使用 v-for 的基本语法为: <div v-for="[item] in [array]"> {{ it…

    Vue 2023年5月27日
    00
  • vue关于下载文件常用的几种方式

    Vue 作为一种流行的前端框架,提供了几种下载文件的方式。本篇文章将介绍 Vue 常用的几种前端下载文件的技巧。 1. 通过a标签下载文件 a 标签是 HTML 中常用的下载文件的方式之一。Vue 在处理下载文件时,可以通过创建一个 a 标签,设置其 href 属性和 download 属性来实现文件下载。 <template> <div&…

    Vue 2023年5月28日
    00
  • vue项目强制清除页面缓存的例子

    要强制清除页面缓存,可以通过添加版本号或者随机字符串的方式来实现。 添加版本号 在vue.config.js文件中的output选项中添加chunkFilename配置项来配置生成的chunk文件名: output: { filename: "js/[name].[hash:8].js", chunkFilename: "js/…

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部