使用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日

相关文章

  • 98道经典Vue面试题总结

    感谢您对本网站的关注,以下是关于《98道经典Vue面试题总结》的完整攻略。 一、前言 Vue.js 是一款流行的前端框架,已经成为很多企业和公司的项目必备技术。但是随着 Vue 的普及,Vue 面试题也越来越多,Vue 面试有可能会考到一些比较深入的知识点。因此,对于很多初学者来说,学习 Vue 的同时,也要去了解一些常见的面试题。 本篇文档涵盖了98道面试…

    Vue 2023年5月28日
    00
  • vue + Electron 制作桌面应用的示例代码

    下面是关于“vue + Electron 制作桌面应用的示例代码”的完整攻略,主要分为以下几个步骤: 1. 创建项目 首先,确保已安装最新版本的 nodejs 和 npm。然后,在命令行工具中输入以下命令创建一个基础的 Vue.js 项目。 vue create my-desktop-app 接下来,进入项目目录并安装 Electron 和 electron…

    Vue 2023年5月27日
    00
  • 在VUE中实现文件下载并判断状态的方法

    实现文件下载并判断状态的方法涉及到前端和后端两个方面,主要的实现步骤如下: 前端部分:在Vue中发起文件下载请求,一般采用axios或者vue-resource等请求库来实现。具体步骤如下: 安装axios或者vue-resource npm install axios –save npm install vue-resource –save 引入相关库…

    Vue 2023年5月28日
    00
  • vue时间线组件的使用方法

    请看以下内容: Vue时间线组件的使用方法 1. 简介 时间线(Timeline)是一种时间轴式的信息展示方式,通常用于展示一些时间上有序的事件或信息。在Vue中,有一些已经封装好的时间线组件可以使用,如Vuetify和Element UI等库中的组件。 2. 安装和导入 以使用Element UI的时间线组件为例,以下是安装和导入的步骤: 首先,在项目中安…

    Vue 2023年5月28日
    00
  • 详解vue v-model

    当我们学习Vue框架时,v-model是一个很重要的概念。v-model指令可以在表单(input, textarea, select)元素上创建双向数据绑定。它可以把表单中用户输入的数据,绑定到Vue实例中的数据属性上;同时,当Vue实例中的数据属性发生变化时,它会同步到表单中去。 1. 如何使用v-model v-model绑定到表单元素上,它的值是绑定…

    Vue 2023年5月28日
    00
  • Vue自定义指令详解

    Vue自定义指令详解 基本概念 Vue自定义指令是Vue.js提供的一种扩展语法,用于自定义DOM操作行为。 自定义指令通过v-前缀来定义,并且可以带有参数和修饰符两个部分。 注册自定义指令 // 全局注册 Vue.directive(‘my-directive’, { // 自定义指令的钩子函数 bind: function (el, binding, v…

    Vue 2023年5月27日
    00
  • vue项目中使用多选框的实例代码

    为了让解释更加清晰,我准备从以下几个方面来讲解: 引入vue的核心库和需要的组件 配置数据源和绑定数据 实现多选功能 示例说明 1. 引入vue的核心库和需要的组件 首先,在vue项目中使用多选框,需要引入vue的核心库和需要的组件: <!– 引入vue的核心库 –> <script src="https://unpkg.co…

    Vue 2023年5月27日
    00
  • Vue前端开发规范整理(推荐)

    当前Vue前端开发已经成为了前端开发中不可或缺的一部分,良好的代码规范可以提升代码质量,减少维护成本,而Vue前端开发规范整理(推荐)的出现,更是为我们提供了一套实践经验,方便我们快速了解和使用规范。 规范内容 Vue前端开发规范整理(推荐)包含以下几个方面的内容: 目录结构规范 命名规范 组件编写规范 视图书写规范 样式书写规范 生命周期使用规范 代码可读…

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