当前位置:首页 > VUE

vue实现图书管理案例

2026-01-07 06:11:41VUE

Vue 实现图书管理案例

项目初始化

使用 Vue CLI 创建项目,安装必要依赖。

vue create book-management
cd book-management
npm install axios vue-router --save

数据结构设计

图书数据通常包含标题、作者、ISBN、出版日期等字段。

// src/data/books.js
export default [
  { id: 1, title: 'Vue.js实战', author: '张三', isbn: '9787121371234', publishDate: '2020-01-01' },
  { id: 2, title: 'JavaScript高级编程', author: '李四', isbn: '9787115275790', publishDate: '2019-05-15' }
]

核心组件实现

创建图书列表组件 BookList.vue

<template>
  <div>
    <table>
      <thead>
        <tr>
          <th>书名</th>
          <th>作者</th>
          <th>ISBN</th>
          <th>出版日期</th>
        </tr>
      </thead>
      <tbody>
        <tr v-for="book in books" :key="book.id">
          <td>{{ book.title }}</td>
          <td>{{ book.author }}</td>
          <td>{{ book.isbn }}</td>
          <td>{{ book.publishDate }}</td>
        </tr>
      </tbody>
    </table>
  </div>
</template>

<script>
export default {
  data() {
    return {
      books: []
    }
  },
  created() {
    this.fetchBooks()
  },
  methods: {
    fetchBooks() {
      // 实际项目中应调用API
      this.books = require('@/data/books')
    }
  }
}
</script>

路由配置

src/router/index.js 中配置路由:

import Vue from 'vue'
import Router from 'vue-router'
import BookList from '@/components/BookList'

Vue.use(Router)

export default new Router({
  routes: [
    { path: '/', component: BookList }
  ]
})

添加图书功能

创建 AddBook.vue 组件:

<template>
  <div>
    <form @submit.prevent="addBook">
      <input v-model="newBook.title" placeholder="书名">
      <input v-model="newBook.author" placeholder="作者">
      <input v-model="newBook.isbn" placeholder="ISBN">
      <input v-model="newBook.publishDate" type="date">
      <button type="submit">添加</button>
    </form>
  </div>
</template>

<script>
export default {
  data() {
    return {
      newBook: {
        id: Date.now(),
        title: '',
        author: '',
        isbn: '',
        publishDate: ''
      }
    }
  },
  methods: {
    addBook() {
      this.$emit('book-added', this.newBook)
      this.resetForm()
    },
    resetForm() {
      this.newBook = {
        id: Date.now(),
        title: '',
        author: '',
        isbn: '',
        publishDate: ''
      }
    }
  }
}
</script>

状态管理(可选)

对于复杂应用,可以使用 Vuex 管理状态:

// src/store/index.js
import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    books: []
  },
  mutations: {
    ADD_BOOK(state, book) {
      state.books.push(book)
    }
  },
  actions: {
    addBook({ commit }, book) {
      commit('ADD_BOOK', book)
    }
  }
})

API 集成

实际项目中应连接后端 API:

// src/api/bookService.js
import axios from 'axios'

export default {
  getBooks() {
    return axios.get('/api/books')
  },
  addBook(book) {
    return axios.post('/api/books', book)
  }
}

项目结构建议

src/
├── components/
│   ├── BookList.vue
│   ├── AddBook.vue
├── views/
├── router/
├── store/
├── api/
├── assets/

样式优化

使用 CSS 或 UI 框架(如 Element UI)美化界面:

<template>
  <el-table :data="books">
    <el-table-column prop="title" label="书名"></el-table-column>
    <el-table-column prop="author" label="作者"></el-table-column>
  </el-table>
</template>

vue实现图书管理案例

标签: 案例图书
分享给朋友:

相关文章

vue实现酒店案例

vue实现酒店案例

实现酒店案例的Vue开发指南 使用Vue框架开发酒店类案例应用时,通常涉及房源展示、预订系统、用户评价等核心功能模块。以下是关键实现方法: 项目初始化与配置 通过Vue CLI创建项目基础结构,安装…

vue实现翻牌效果案例

vue实现翻牌效果案例

Vue 实现翻牌效果案例 翻牌效果通常用于展示卡片翻转动画,常见于记忆游戏或展示正反面内容。以下是基于 Vue 3 的实现方案: 基础翻牌效果实现 创建翻转动画的核心是利用 CSS 的 transf…

vue实现图书购买系统

vue实现图书购买系统

Vue实现图书购买系统 项目结构设计 使用Vue CLI或Vite初始化项目,推荐目录结构: src/components/ 存放可复用组件(如图书卡片、购物车) src/views/ 存放页面级组…

vue实现点赞案例

vue实现点赞案例

Vue实现点赞功能 基础实现(无持久化) 创建Vue组件,使用v-on绑定点击事件和v-bind动态绑定样式: <template> <button @clic…

react native实现案例

react native实现案例

React Native 实现案例 React Native 是一个流行的跨平台移动应用开发框架,允许开发者使用 JavaScript 和 React 构建高性能的 iOS 和 Android 应用。…

uniapp的案例

uniapp的案例

常见 Uniapp 案例类型 Uniapp 的案例覆盖多个领域,包括电商、社交、工具类应用等。以下是一些典型场景: 电商平台 跨端商城:支持微信小程序、H5、App,实现商品展示、购物…