当前位置:首页 > VUE

vue实现数据增删查找

2026-02-24 19:56:30VUE

Vue 实现数据增删查找

数据管理基础

Vue.js 通过响应式数据绑定和组件化开发,可以高效实现数据的增删查改功能。核心在于利用 data 存储数据,通过方法操作数据,并依赖 Vue 的响应式更新视图。

初始化数据

在 Vue 实例或组件的 data 中定义初始数据数组:

vue实现数据增删查找

data() {
  return {
    items: [
      { id: 1, name: 'Item A' },
      { id: 2, name: 'Item B' }
    ],
    newItem: { id: '', name: '' },
    searchKeyword: ''
  }
}

添加数据

通过方法向数组添加新数据,注意避免直接修改原数组:

methods: {
  addItem() {
    if (this.newItem.name.trim() === '') return;
    this.items.push({
      id: Date.now(),
      name: this.newItem.name
    });
    this.newItem.name = '';
  }
}

删除数据

使用 filtersplice 删除指定数据项:

vue实现数据增删查找

methods: {
  deleteItem(id) {
    this.items = this.items.filter(item => item.id !== id);
  }
}

查找数据

通过计算属性实现实时搜索过滤:

computed: {
  filteredItems() {
    return this.items.filter(item => 
      item.name.toLowerCase().includes(this.searchKeyword.toLowerCase())
    );
  }
}

完整示例

<template>
  <div>
    <input v-model="searchKeyword" placeholder="Search...">
    <ul>
      <li v-for="item in filteredItems" :key="item.id">
        {{ item.name }}
        <button @click="deleteItem(item.id)">Delete</button>
      </li>
    </ul>
    <input v-model="newItem.name" @keyup.enter="addItem" placeholder="Add new item">
    <button @click="addItem">Add</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      items: [
        { id: 1, name: 'Apple' },
        { id: 2, name: 'Banana' }
      ],
      newItem: { name: '' },
      searchKeyword: ''
    };
  },
  computed: {
    filteredItems() {
      return this.items.filter(item =>
        item.name.toLowerCase().includes(this.searchKeyword.toLowerCase())
      );
    }
  },
  methods: {
    addItem() {
      if (this.newItem.name.trim() === '') return;
      this.items.push({
        id: Date.now(),
        name: this.newItem.name
      });
      this.newItem.name = '';
    },
    deleteItem(id) {
      this.items = this.items.filter(item => item.id !== id);
    }
  }
};
</script>

进阶优化

对于大型数据集,考虑以下优化:

  • 使用 Vuex 集中管理状态
  • 添加防抖处理搜索输入
  • 实现分页加载
  • 使用唯一 ID 生成库确保 ID 唯一性

注意事项

  • 操作数组时遵循 Vue 的响应式规则,使用可检测的变更方法(如 pushsplice
  • v-for 列表添加唯一的 key 属性
  • 复杂数据处理可迁移到计算属性中,保持模板简洁

标签: 数据vue
分享给朋友:

相关文章

vue实现新闻

vue实现新闻

Vue 实现新闻功能 使用 Vue 实现新闻功能通常涉及新闻列表展示、新闻详情页、分类筛选等模块。以下是实现的基本思路和代码示例。 新闻列表展示 通过 Vue 组件展示新闻列表,通常使用 v-for…

vue实现订单

vue实现订单

Vue 实现订单功能 订单数据结构设计 订单数据通常包含以下字段: order: { id: String, // 订单ID userId: String,…

vue核心实现

vue核心实现

Vue 核心实现原理 Vue.js 的核心实现主要包括响应式系统、虚拟 DOM、模板编译和组件化机制。以下是关键实现原理的详细说明: 响应式系统 Vue 使用 Object.defineProper…

vue实现popper

vue实现popper

Vue 实现 Popper 的方法 使用 Tippy.js 库 Tippy.js 是一个轻量级的 Popper.js 封装库,提供丰富的工具提示功能。安装 Tippy.js 及其 Vue 封装: n…

vue scrolltop 实现

vue scrolltop 实现

实现 Vue 中的 scrollTop 在 Vue 中实现滚动到顶部功能可以通过多种方式完成,包括使用原生 JavaScript、Vue 指令或第三方库。以下是几种常见的实现方法: 使用原生 Jav…

vue导航实现

vue导航实现

Vue 导航实现方法 在 Vue 中实现导航功能通常涉及路由配置、组件设计和状态管理。以下是几种常见的实现方式: 使用 Vue Router 实现基础导航 安装 Vue Router: npm i…