当前位置:首页 > VUE

vue实现curd

2026-01-07 23:25:07VUE

Vue实现CRUD操作

初始化Vue项目

使用Vue CLI创建新项目,安装必要依赖如axios用于HTTP请求

vue create crud-demo
cd crud-demo
npm install axios

组件结构设计

创建主要组件文件,通常包括列表显示、表单编辑等组件

// src/components/
- UserList.vue    // 展示数据列表
- UserForm.vue    // 新增/编辑表单
- App.vue         // 主入口组件

状态管理配置

使用Vuex管理共享状态,定义CRUD相关状态和mutations

vue实现curd

// store.js
const store = new Vuex.Store({
  state: {
    users: [],
    currentUser: null
  },
  mutations: {
    SET_USERS(state, users) {
      state.users = users
    },
    ADD_USER(state, user) {
      state.users.push(user)
    }
  }
})

API服务层

封装axios请求方法,与后端API交互

// api/user.js
import axios from 'axios'

export default {
  getUsers() {
    return axios.get('/api/users')
  },
  createUser(user) {
    return axios.post('/api/users', user)
  }
}

列表组件实现

展示数据并提供操作按钮

vue实现curd

<template>
  <table>
    <tr v-for="user in users" :key="user.id">
      <td>{{ user.name }}</td>
      <td>
        <button @click="editUser(user)">Edit</button>
        <button @click="deleteUser(user.id)">Delete</button>
      </td>
    </tr>
  </table>
</template>

<script>
export default {
  computed: {
    users() {
      return this.$store.state.users
    }
  },
  methods: {
    editUser(user) {
      this.$emit('edit', user)
    }
  }
}
</script>

表单组件实现

处理数据创建和更新

<template>
  <form @submit.prevent="handleSubmit">
    <input v-model="formData.name" placeholder="Name">
    <button type="submit">Submit</button>
  </form>
</template>

<script>
export default {
  props: {
    user: {
      type: Object,
      default: null
    }
  },
  data() {
    return {
      formData: this.user || { name: '' }
    }
  },
  methods: {
    handleSubmit() {
      this.$emit('submit', this.formData)
    }
  }
}
</script>

主组件整合

协调各子组件功能

<template>
  <div>
    <user-form @submit="saveUser"></user-form>
    <user-list @edit="editUser"></user-list>
  </div>
</template>

<script>
import { mapActions } from 'vuex'

export default {
  methods: {
    ...mapActions(['fetchUsers', 'createUser']),
    saveUser(user) {
      this.createUser(user)
    }
  },
  created() {
    this.fetchUsers()
  }
}
</script>

路由配置(可选)

如需多页面,配置Vue Router管理导航

const routes = [
  { path: '/users', component: UserList },
  { path: '/users/create', component: UserForm }
]

标签: vuecurd
分享给朋友:

相关文章

vue实现上移下移插件

vue实现上移下移插件

实现上移下移功能的 Vue 插件 在 Vue 中实现列表项的上移和下移功能,可以通过自定义指令或组件封装的方式完成。以下是两种常见实现方式: 基于数组操作的通用方法 通过操作数组索引实现元素位置交换…

vue 实现树状

vue 实现树状

Vue 实现树状结构的方法 递归组件实现树状结构 递归组件是 Vue 中实现树状结构的常见方法。通过组件自身调用自身,可以轻松构建多层级树状结构。 <template> <ul…

vue实现getapp

vue实现getapp

Vue 中实现全局获取应用实例的方法 在 Vue 3 中,可以通过 getCurrentInstance 方法获取当前组件实例,但需要明确其使用场景和限制。以下是具体实现方式: 方法一:通过 get…

vue实现tree

vue实现tree

Vue 实现 Tree 组件 使用 Vue 实现 Tree 组件可以通过递归组件的方式来实现层级结构展示。以下是一个完整的实现方法: 基础递归组件实现 创建 Tree 组件文件 Tree.vue,使…

vue实现swiper

vue实现swiper

Vue 中实现 Swiper 的方法 安装 Swiper 依赖 在 Vue 项目中安装 Swiper 和相关依赖: npm install swiper vue-awesome-swiper 全局引…

vue核心实现

vue核心实现

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