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

// 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)
  }
}

列表组件实现

展示数据并提供操作按钮

<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 }
]

vue实现curd

标签: vuecurd
分享给朋友:

相关文章

vue实现单选

vue实现单选

Vue 实现单选功能 在 Vue 中实现单选功能可以通过多种方式完成,以下是几种常见的方法: 使用 v-model 绑定单选按钮 通过 v-model 绑定一个变量,可以实现单选功能。单选按钮的…

前端多线程实现vue

前端多线程实现vue

前端多线程与Vue的结合 在Vue中实现多线程通常通过Web Worker技术完成。Web Worker允许在后台线程中运行脚本,避免阻塞主线程,适合处理计算密集型任务。 使用Web Worker…

vue 移动端实现签名

vue 移动端实现签名

Vue 移动端签名实现方法 在移动端实现签名功能,可以通过HTML5的Canvas结合触摸事件完成。以下是具体实现步骤: 使用Canvas绘制签名 安装vue-signature-pad插件或直…

vue实现滚动截屏

vue实现滚动截屏

实现滚动截屏的基本思路 滚动截屏通常指对超出可视区域的长页面进行完整截图。在Vue中,可以通过结合DOM操作、Canvas绘制及第三方库实现。以下是具体方法: 使用html2canvas库实现…

vue实现导航切换内容

vue实现导航切换内容

Vue实现导航切换内容的方法 在Vue中实现导航切换内容,可以通过以下方式实现: 使用动态组件 动态组件通过<component :is="currentComponent">实现内容…

vue实现下拉层级

vue实现下拉层级

Vue实现下拉层级菜单 使用Vue实现下拉层级菜单可以通过递归组件或动态渲染的方式完成。以下是两种常见实现方法: 递归组件实现 创建一个递归组件处理多级菜单结构: <template>…