当前位置:首页 > 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)

添加新条目到列表:

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)

编辑现有条目:

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原生实现crud功能

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

相关文章

vue实现div

vue实现div

Vue 实现 DIV 元素的方法 在 Vue 中实现 DIV 元素可以通过多种方式,以下是几种常见的实现方法: 使用模板语法 在 Vue 的模板中直接使用 HTML 的 <div> 标签…

vue实现框架

vue实现框架

Vue 框架实现的核心方法 基础项目搭建 使用 Vue CLI 或 Vite 快速初始化项目。Vue CLI 适合传统项目,Vite 更适合现代轻量级应用。安装后通过命令行工具选择所需配置(如 Rou…

vue实现socket

vue实现socket

Vue 中实现 WebSocket 通信 在 Vue 项目中实现 WebSocket 通信可以通过原生 WebSocket API 或第三方库(如 socket.io-client)完成。以下是两种常…

vue的实现

vue的实现

Vue 的实现原理 Vue 是一个渐进式 JavaScript 框架,其核心实现主要包括响应式系统、虚拟 DOM、模板编译和组件化机制。以下是 Vue 实现的主要技术细节。 响应式系统 Vue 的…

vue实现标签

vue实现标签

Vue 实现标签的方法 在 Vue 中实现标签功能可以通过多种方式完成,以下是几种常见的方法: 使用动态组件 动态组件可以根据不同的条件渲染不同的标签内容。通过 :is 属性动态绑定组件名,实现标签…

vue实现逻辑

vue实现逻辑

Vue 实现逻辑的核心概念 Vue.js 是一个渐进式 JavaScript 框架,其核心逻辑围绕数据驱动和组件化开发。通过响应式系统、虚拟 DOM 和组件生命周期等机制,Vue 实现了高效的前端开发…