当前位置:首页 > VUE

vue实现增删查改

2026-02-24 22:29:49VUE

vue实现增删查改的方法

基本结构搭建

使用Vue CLI或直接引入Vue.js创建项目。准备基础模板包含数据列表展示区域和操作按钮区。数据通常存储在组件的data属性中,以数组形式保存。

<template>
  <div>
    <ul>
      <li v-for="(item, index) in items" :key="index">
        {{ item.name }}
        <button @click="deleteItem(index)">删除</button>
      </li>
    </ul>
    <input v-model="newItem" placeholder="新增项目"/>
    <button @click="addItem">添加</button>
  </div>
</template>

数据查询展示

在data中定义初始数据数组,使用v-for指令循环渲染列表。通过计算属性可实现筛选查询功能。

data() {
  return {
    items: [
      { id: 1, name: '项目1' },
      { id: 2, name: '项目2' }
    ],
    newItem: ''
  }
}

新增数据实现

通过v-model绑定输入框,在addItem方法中处理新增逻辑。注意数据校验和唯一性检查。

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

删除数据操作

根据索引或唯一标识删除数组元素,使用数组的splice方法或filter方法。

deleteItem(index) {
  this.items.splice(index, 1);
}

修改数据功能

添加编辑状态标记和修改方法,通过双向绑定实现表单编辑。

<li v-for="(item, index) in items" :key="item.id">
  <span v-if="!item.editing">{{ item.name }}</span>
  <input v-else v-model="item.name" @blur="saveEdit(index)"/>
  <button @click="toggleEdit(index)">编辑</button>
</li>

methods: {
  toggleEdit(index) {
    this.items[index].editing = !this.items[index].editing;
  },
  saveEdit(index) {
    this.items[index].editing = false;
  }
}

与后端API交互

使用axios等库处理HTTP请求,将操作映射到RESTful接口。

import axios from 'axios';

methods: {
  async fetchItems() {
    const res = await axios.get('/api/items');
    this.items = res.data;
  },
  async addItem() {
    await axios.post('/api/items', { name: this.newItem });
    this.fetchItems();
  }
}

完整组件示例

整合所有功能的标准组件示例,包含基本CRUD操作。

<template>
  <div>
    <input v-model="newItem" @keyup.enter="addItem"/>
    <button @click="addItem">添加</button>

    <ul>
      <li v-for="item in filteredItems" :key="item.id">
        <span v-if="!item.editing">{{ item.name }}</span>
        <input v-else v-model="item.name" @blur="saveEdit(item.id)"/>
        <button @click="toggleEdit(item.id)">编辑</button>
        <button @click="deleteItem(item.id)">删除</button>
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      items: [],
      newItem: '',
      searchTerm: ''
    }
  },
  computed: {
    filteredItems() {
      return this.items.filter(item => 
        item.name.includes(this.searchTerm)
      );
    }
  },
  methods: {
    toggleEdit(id) {
      const item = this.items.find(i => i.id === id);
      item.editing = !item.editing;
    }
  }
}
</script>

状态管理方案

对于复杂应用,建议使用Vuex集中管理状态,确保数据流清晰可追踪。

vue实现增删查改

// store.js
export default new Vuex.Store({
  state: {
    items: []
  },
  mutations: {
    ADD_ITEM(state, item) {
      state.items.push(item);
    }
  }
})

// 组件中
methods: {
  addItem() {
    this.$store.commit('ADD_ITEM', { 
      id: Date.now(),
      name: this.newItem 
    });
  }
}

标签: vue
分享给朋友:

相关文章

vue实现下拉框删除

vue实现下拉框删除

Vue 实现下拉框删除功能 在Vue中实现下拉框的删除功能通常涉及以下步骤: 数据绑定与渲染 在Vue组件中定义数据数组用于存储下拉框选项: data() { return { op…

vue实现app

vue实现app

Vue 实现 App 的常见方法 使用 Vue 开发移动端 App 主要有两种主流方案:混合开发(Hybrid)和原生渲染。以下是具体实现方式和工具链: 混合开发方案(WebView 嵌入) 通过…

vue实现键盘

vue实现键盘

Vue 实现键盘功能 在Vue中实现键盘功能通常涉及监听键盘事件、处理输入以及渲染虚拟键盘界面。以下是几种常见的实现方式: 监听键盘事件 通过@keydown或@keyup指令监听键盘事件,适用于需…

vue实现购票

vue实现购票

Vue 实现购票功能 数据结构设计 购票功能通常需要以下数据结构: 场次信息(时间、地点、价格) 座位信息(可选座位、已售座位) 用户订单信息 示例数据结构: data() { return…

vue导航实现

vue导航实现

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

vue源码实现

vue源码实现

Vue 源码实现解析 Vue.js 的核心实现可以分为响应式系统、虚拟 DOM、模板编译、组件化等几个关键部分。以下是对这些核心机制的详细解析。 响应式系统 Vue 的响应式系统基于 Object.…