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

yizhihongxing

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

相关文章

  • vue动画效果实现方法示例

    下面是“vue动画效果实现方法示例”的完整攻略。 什么是Vue动画效果? Vue动画效果是一种通过在Vue组件中定义CSS过渡和动画来实现元素过渡和动画效果。Vue动画效果可以用于在组件之间切换、插入或删除元素等场景下,使页面动态、生动、吸引人。 有哪些实现方法? Vue动画效果可以通过以下两种方式来实现: 方式一:使用<transition>标…

    Vue 2023年5月27日
    00
  • Vue学习之axios的使用方法实例分析

    Vue学习之axios的使用方法实例分析 本教程将详细介绍Vue.js中axios的使用方法,并通过实例说明如何使用axios进行数据请求和处理。 一、安装axios 在Vue.js中使用axios前,需要先安装该库。可以通过npm进行安装,命令如下所示: npm install axios 二、axios的基本使用方式 发送GET请求 使用axios发送G…

    Vue 2023年5月28日
    00
  • Vue通过字符串关键字符实现动态渲染input输入框

    当我们需要动态生成一个输入框时,在Vue中可以通过字符串关键字符来实现,以下是具体步骤: 在Vue组件中定义一个data属性,用于存储动态生成的输入框的值 data() { return { inputValue: ” } }, 在模板中使用v-model绑定data属性,将动态生成的输入框与data属性进行双向绑定 <template> &l…

    Vue 2023年5月27日
    00
  • vue终极性能优化方案(解决首页加载慢问题)

    我来为您讲解一下“Vue终极性能优化方案(解决首页加载慢问题)”的完整攻略。 首页加载慢问题 在开发Vue项目时,有时候我们会遇到首页加载慢的问题,这是因为我们的网页存在大量的CSS和JS文件,导致浏览器需要下载很多文件才能显示页面。为了解决这个问题,我们可以从多个方面入手进行优化。 代码分割 代码分割是一种常用的优化手段,可以将应用程序分成小块,只加载当前…

    Vue 2023年5月27日
    00
  • Vue中如何获取json文件中的数据

    获取json文件中的数据是Vue.js开发中一个较为基础的操作,以下是获取json文件中数据的完整攻略: 步骤一、引入json文件 我们需要在Vue.js中首选将json文件引入,可以通过以下方式进行: import data from ‘../assets/data.json’ 上述代码中,”data”是我们引入的json文件的名称,路径和实际情况可能有所…

    Vue 2023年5月28日
    00
  • Vue读取本地静态文件json的2种方法以及优缺点

    下面是详细的攻略。 Vue如何读取本地静态文件json 在Vue中,我们可以使用以下两种方法读取本地静态文件json。 方法一:使用Ajax来读取本地静态文件json 第一种方法是使用Ajax进行读取,在Vue中可以通过axios库来实现Ajax请求。将本地静态文件JSON作为静态资源放在static文件夹下: |– src | |– App.vue |…

    Vue 2023年5月28日
    00
  • vue-cli4.0多环境配置变量与模式详解

    下面就为大家详细讲解“vue-cli4.0多环境配置变量与模式详解”的完整攻略。 1. Vue-cli4.0多环境 1.1 什么是多环境? 在Vue开发中,我们会根据不同的环境(开发环境、测试环境、生产环境等)来区分不同的代码逻辑,比如可以使用不同的API服务。因此,我们需要进行多环境的配置。 1.2 多环境配置方法 Vue-cli4.0对于多环境配置提供了…

    Vue 2023年5月28日
    00
  • Vue路由重复点击报错问题及解决

    Vue路由重复点击报错问题及解决 问题描述 在使用Vue开发中,遇到路由跳转时,有可能出现以下问题: 多次快速点击同一路由会报错。 从当前路由返回到上一路由,再点击返回到当前路由时会报错。 错误通常如下: NavigationDuplicated{_name: "NavigationDuplicated"} 问题原因 出现该错误,是因为V…

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