当前位置:首页 > VUE

vue原生实现crud功能

2026-02-22 23:26:07VUE

Vue 原生实现 CRUD 功能

在 Vue 中实现 CRUD(Create, Read, Update, Delete)功能,可以通过组合式 API 或选项式 API 完成。以下是基于组合式 API 的实现方案,包含核心代码和逻辑。

数据准备与状态管理

使用 refreactive 管理数据状态,模拟一个简单的待办事项列表:

import { ref } from 'vue';

const items = ref([]);
const newItem = ref('');
const editingIndex = ref(-1);

创建(Create)

添加新条目到列表:

vue原生实现crud功能

const addItem = () => {
  if (newItem.value.trim()) {
    items.value.push({ id: Date.now(), text: newItem.value });
    newItem.value = '';
  }
};

读取(Read)

渲染列表数据:

<template>
  <ul>
    <li v-for="(item, index) in items" :key="item.id">
      {{ item.text }}
      <button @click="editItem(index)">Edit</button>
      <button @click="deleteItem(index)">Delete</button>
    </li>
  </ul>
</template>

更新(Update)

编辑现有条目:

vue原生实现crud功能

const editItem = (index) => {
  editingIndex.value = index;
  newItem.value = items.value[index].text;
};

const updateItem = () => {
  if (editingIndex.value !== -1 && newItem.value.trim()) {
    items.value[editingIndex.value].text = newItem.value;
    editingIndex.value = -1;
    newItem.value = '';
  }
};

删除(Delete)

移除指定条目:

const deleteItem = (index) => {
  items.value.splice(index, 1);
};

表单绑定与操作整合

将方法与表单绑定:

<template>
  <input v-model="newItem" placeholder="Enter item">
  <button 
    @click="editingIndex === -1 ? addItem() : updateItem()"
  >
    {{ editingIndex === -1 ? 'Add' : 'Update' }}
  </button>
</template>

完整示例代码

整合后的组件代码:

<template>
  <div>
    <input v-model="newItem" placeholder="Enter item">
    <button @click="editingIndex === -1 ? addItem() : updateItem()">
      {{ editingIndex === -1 ? 'Add' : 'Update' }}
    </button>

    <ul>
      <li v-for="(item, index) in items" :key="item.id">
        {{ item.text }}
        <button @click="editItem(index)">Edit</button>
        <button @click="deleteItem(index)">Delete</button>
      </li>
    </ul>
  </div>
</template>

<script setup>
import { ref } from 'vue';

const items = ref([]);
const newItem = ref('');
const editingIndex = ref(-1);

const addItem = () => {
  if (newItem.value.trim()) {
    items.value.push({ id: Date.now(), text: newItem.value });
    newItem.value = '';
  }
};

const editItem = (index) => {
  editingIndex.value = index;
  newItem.value = items.value[index].text;
};

const updateItem = () => {
  if (editingIndex.value !== -1 && newItem.value.trim()) {
    items.value[editingIndex.value].text = newItem.value;
    editingIndex.value = -1;
    newItem.value = '';
  }
};

const deleteItem = (index) => {
  items.value.splice(index, 1);
};
</script>

关键点说明

  • 响应式数据:使用 refreactive 确保数据变化触发视图更新。
  • 条件渲染:通过 editingIndex 切换添加/更新模式。
  • 列表操作:数组方法 pushsplice 直接修改响应式数据。

此实现无需额外库,适合小型应用。如需复杂状态管理,可结合 Pinia 或 Vuex。

标签: 功能vue
分享给朋友:

相关文章

vue 实现滚动

vue 实现滚动

实现滚动的基本方法 在Vue中实现滚动效果可以通过多种方式完成,包括使用原生JavaScript、CSS或第三方库。以下是一些常见的方法: 使用window.scrollTo方法实现页面滚动 可以通…

vue实现suspense

vue实现suspense

Vue 3 中实现 Suspense Suspense 是 Vue 3 引入的一个内置组件,用于处理异步依赖的加载状态。它允许在等待异步组件或异步数据加载时显示一个后备内容(fallback),直到异…

vue实现Siri

vue实现Siri

Vue 实现 Siri 风格语音交互 实现类似 Siri 的语音交互功能需要结合语音识别、语音合成和前端交互逻辑。Vue 作为前端框架,可以很好地管理这些功能的交互状态。 语音识别集成 使用 Web…

vue实现双向

vue实现双向

Vue 实现双向绑定的方法 Vue 的双向绑定主要通过 v-model 指令实现,它结合了数据绑定和事件监听,适用于表单元素(如 input、select、textarea 等)。以下是几种常见的实现…

vue实现curd

vue实现curd

Vue实现CRUD操作 初始化Vue项目 使用Vue CLI创建新项目,安装必要依赖如axios用于HTTP请求 vue create crud-demo cd crud-demo npm inst…

vue实现 弹窗

vue实现 弹窗

Vue 实现弹窗的基本方法 使用 Vue 实现弹窗可以通过多种方式,包括组件化、指令、插件等。以下是几种常见的实现方法。 组件化实现弹窗 创建一个独立的弹窗组件,通过 props 控制显示与隐藏。…