当前位置:首页 > 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.js 提供了多种方式实现用户交互,包括事件处理、表单绑定、动态渲染等。以下是常见的交互实现方法: 事件处理 通过 v-on 或 @ 指令绑定事件,触发方法或直接执行表…

vue实现过滤

vue实现过滤

Vue实现过滤的方法 在Vue中实现数据过滤可以通过多种方式完成,以下是几种常见的方法: 使用计算属性过滤 计算属性是Vue中处理数据过滤的理想选择,它们基于响应式依赖进行缓存,只有在相关依赖发生…

vue实现socket

vue实现socket

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

vue el 实现

vue el 实现

Vue 中使用 Element UI (el) 的实现方法 Element UI 是一个基于 Vue 的组件库,提供丰富的 UI 组件,常用于快速构建企业级中后台产品。以下介绍 Vue 项目中集成和使…

vue实现逻辑

vue实现逻辑

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

vue实现gps

vue实现gps

Vue 中实现 GPS 定位功能 在 Vue 中实现 GPS 定位功能通常依赖于浏览器的 Geolocation API 或第三方地图服务(如高德、百度地图等)。以下是两种常见的实现方式: 使用浏…