使用Bootstrap + Vue.js实现表格的动态展示、新增和删除功能

使用Bootstrap + Vue.js来实现动态表格展示、新增和删除功能需要进行以下步骤:

步骤一:引入所需库

在项目中引入Bootstrap和Vue.js两个库,可以使用CDN或在本地引入。

<!-- 引入Bootstrap CSS文件 -->
<link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.6.0/css/bootstrap.min.css">
<!-- 引入Vue.js文件 -->
<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.14/vue.min.js"></script>

步骤二:构建Vue实例

通过Vue实例来管理表格数据和操作,其中tableData是用来存储表格数据的数组,用来进行增、删、改等操作。

<div id="app">
    <table class="table">
        <thead>
            <tr>
                <th>编号</th>
                <th>姓名</th>
                <th>年龄</th>
                <th>操作</th>
            </tr>
        </thead>
        <tbody>
            <tr v-for="(item, index) in tableData" :key="index">
                <td>{{ item.id }}</td>
                <td>{{ item.name }}</td>
                <td>{{ item.age }}</td>
                <td>
                    <a class="btn btn-info" href="#" @click="editItem(index)">编辑</a>
                    <a class="btn btn-danger" href="#" @click="deleteItem(index)">删除</a>
                </td>
            </tr>
        </tbody>
    </table>
</div>
<script>
new Vue({
    el: '#app',
    data: {
        tableData: [
            { id: 1, name: '张三', age: 20 },
            { id: 2, name: '李四', age: 22 },
            { id: 3, name: '王五', age: 24 }
        ]
    },
    methods: {
        editItem(index) {
            // 编辑操作
        },
        deleteItem(index) {
            // 删除操作
        }
    }
})
</script>

步骤三:实现新增功能

在Vue实例中新增addItem方法,用来接收用户输入的新数据,并将其添加到tableData数组中。

methods: {
    addItem() {
        let id = this.tableData[this.tableData.length - 1].id + 1;
        let name = this.$refs.name.value;
        let age = this.$refs.age.value;
        this.tableData.push({ id: id, name: name, age: age });
        this.$refs.name.value = '';
        this.$refs.age.value = '';
    },
    editItem(index) {
        // 编辑操作
    },
    deleteItem(index) {
        // 删除操作
    }
}
<div class="input-group mb-3">
    <input type="text" class="form-control" placeholder="请输入姓名" ref="name">
    <input type="text" class="form-control" placeholder="请输入年龄" ref="age">
    <div class="input-group-append">
        <button class="btn btn-primary" type="button" @click="addItem">新增</button>
    </div>
</div>

步骤四:实现删除功能

在Vue实例中的deleteItem方法可以删除指定索引位置的数据。

methods: {
    addItem() {
        // 新增操作
    },
    editItem(index) {
        // 编辑操作
    },
    deleteItem(index) {
        this.tableData.splice(index, 1);
    }
}

示例一:动态新增表格行

下面是一个动态新增表格行的示例,在input输入框中输入姓名和年龄,点击新增按钮即可在表格中动态添加数据。

<div id="app">
    <div class="input-group mb-3">
        <input type="text" class="form-control" placeholder="请输入姓名" ref="name">
        <input type="text" class="form-control" placeholder="请输入年龄" ref="age">
        <div class="input-group-append">
            <button class="btn btn-primary" type="button" @click="addItem">新增</button>
        </div>
    </div>
    <table class="table">
        <thead>
            <tr>
                <th>编号</th>
                <th>姓名</th>
                <th>年龄</th>
                <th>操作</th>
            </tr>
        </thead>
        <tbody>
            <tr v-for="(item, index) in tableData" :key="index">
                <td>{{ item.id }}</td>
                <td>{{ item.name }}</td>
                <td>{{ item.age }}</td>
                <td>
                    <a class="btn btn-info" href="#" @click="editItem(index)">编辑</a>
                    <a class="btn btn-danger" href="#" @click="deleteItem(index)">删除</a>
                </td>
            </tr>
        </tbody>
    </table>
</div>
<script>
new Vue({
    el: '#app',
    data: {
        tableData: [
            { id: 1, name: '张三', age: 20 },
            { id: 2, name: '李四', age: 22 },
            { id: 3, name: '王五', age: 24 }
        ]
    },
    methods: {
        addItem() {
            let id = this.tableData[this.tableData.length - 1].id + 1;
            let name = this.$refs.name.value;
            let age = this.$refs.age.value;
            this.tableData.push({ id: id, name: name, age: age });
            this.$refs.name.value = '';
            this.$refs.age.value = '';
        },
        editItem(index) {
            // 编辑操作
        },
        deleteItem(index) {
            this.tableData.splice(index, 1);
        }
    }
})
</script>

示例二:动态删除表格行

下面是一个动态删除表格行的示例,在表格每一行的操作列中点击删除按钮可以删除该行数据。

<div id="app">
    <table class="table">
        <thead>
            <tr>
                <th>编号</th>
                <th>姓名</th>
                <th>年龄</th>
                <th>操作</th>
            </tr>
        </thead>
        <tbody>
            <tr v-for="(item, index) in tableData" :key="index">
                <td>{{ item.id }}</td>
                <td>{{ item.name }}</td>
                <td>{{ item.age }}</td>
                <td>
                    <a class="btn btn-info" href="#" @click="editItem(index)">编辑</a>
                    <a class="btn btn-danger" href="#" @click="deleteItem(index)">删除</a>
                </td>
            </tr>
        </tbody>
    </table>
</div>
<script>
new Vue({
    el: '#app',
    data: {
        tableData: [
            { id: 1, name: '张三', age: 20 },
            { id: 2, name: '李四', age: 22 },
            { id: 3, name: '王五', age: 24 }
        ]
    },
    methods: {
        addItem() {
            // 新增操作
        },
        editItem(index) {
            // 编辑操作
        },
        deleteItem(index) {
            this.tableData.splice(index, 1);
        }
    }
})
</script>

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用Bootstrap + Vue.js实现表格的动态展示、新增和删除功能 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • Vue3中watch的最佳用法

    下面我就为你详细地讲解一下“Vue3中watch的最佳用法”的完整攻略。 什么是Vue3的watch 首先,我们需要明确一下Vue3中的watch是什么。Vue3中的watch是一个响应式API,可以监听数据变化并触发相应的操作。在Vue2中,我们可能会使用一个对象中的watch属性来实现数据的观察,而在Vue3中,我们可以使用watch函数来实现相同的功能…

    Vue 2023年5月27日
    00
  • mockjs+vue页面直接展示数据的方法

    下面是关于“mockjs+vue页面直接展示数据的方法”的详细讲解,它包含以下几个步骤: 安装mockjs模块 在开始使用mockjs之前,我们需要先安装该模块。可以使用npm来安装,命令如下: npm install mockjs –save-dev 编写mock数据 我们可以在项目里新建一个mock文件夹,用于存放mock数据。在该文件夹下新建一个js…

    Vue 2023年5月27日
    00
  • Vue.js中关于侦听器(watch)的高级用法示例

    Vue.js是一个非常流行的JavaScript框架,它提供了很多便捷的API来进行数据的操作。其中重要的一个API就是侦听器(watch),可以监听Vue实例中数据的变化并做出相应的响应。 本文将为大家详细讲解Vue.js中关于侦听器的高级用法,通过两条示例来展示如何使用侦听器来处理复杂的数据逻辑。 简单的侦听器 首先,我们来看一个简单的侦听器:当Vue实…

    Vue 2023年5月28日
    00
  • 详解vue中多个有顺序要求的异步操作处理

    本文讲解如何在 Vue.js 应用中处理多个具有顺序要求的异步操作。可能的场景包括:一个 Ajax 请求需要得到一个 token 并在其成功返回后才能进行;多个 Ajax 请求需要按特定顺序进行。对于这种情况,我们可以使用 Promise、async/await、发布订阅模式等技术手段来处理。 Promise Promise 是 JavaScript 中处理…

    Vue 2023年5月27日
    00
  • vue框架通用化解决个性化文字换行问题实例详解

    对于“vue框架通用化解决个性化文字换行问题实例详解”的攻略,我将按照以下标题进行讲解。 解决方案背景和问题描述 在使用Vue框架开发应用时,我们经常会遇到一些个性化问题,例如文字长度不一致引起的换行问题。在这种情况下,我们需要一种通用的解决方案,能够在不同场景下灵活地适应不同的需要。因此,本文将介绍一种如何解决Vue框架下个性化文字换行问题的通用方案。 具…

    Vue 2023年5月27日
    00
  • SpringBoot预加载与懒加载实现方法超详细讲解

    SpringBoot预加载与懒加载实现方法超详细讲解 什么是预加载和懒加载? 在介绍如何实现预加载和懒加载之前,我们需要先了解这两个术语的含义。 预加载:在应用程序启动时就加载所有的模块或组件,以便后续处理时能够直接使用。这种方式可以有效地提高应用程序的响应速度,但是会降低应用程序的启动速度和内存占用量。 懒加载:在需要时才加载模块或组件。这种方式可以减少应…

    Vue 2023年5月28日
    00
  • vue 扩展现有组件的操作

    扩展 Vue 组件是指在已有的组件基础上进行自定义修改,以适应不同的业务需求。下面我将分享我们常用的几种扩展组件的方法。 1. 使用 mixins Mixins 是 Vue 中的一个实用工具,用于复用 Vue 组件中的一些常用逻辑。使用 mixins 可以将一些重复的代码抽离到单独的文件中,再通过导入和混入的方式来扩展组件。 使用 mixins 可以扩展已有…

    Vue 2023年5月28日
    00
  • vue.js配合$.post从后台获取数据简单demo分享

    下面介绍关于vue.js配合$.post从后台获取数据简单demo的详细攻略。 步骤一:准备工作 在实现这个demo前,需要准备一些工作: 安装vue.js库 引入jQuery库 编写后台接口 步骤二:编写代码 先在HTML中引入vue.js和jQuery库,并且新建一个Vue实例对象: <!DOCTYPE html> <html> …

    Vue 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部