用vue实现增删改查

1、some(回调函数(item,index)) ⽅法测试数组中是不是⾄少有1个元素通过了被提供的函数测 试。它返回的是⼀个Boolean类型的值

2、find() ⽅法返回数组中满⾜提供的测试函数的第⼀个元素的值。否则返回 undefined。

3、 splice() ⽅法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被 修改的内容。此⽅法会改变原数组。

4、 includes() ⽅法⽤于判断⼀个字符串是否包含在另⼀个字符串中,根据情况返回 true 或 false。

5、 filter() ⽅法创建⼀个新数组, 其包含通过所提供函数实现的测试的所有元素。

6、indexOf()⽅法返回在数组中可以找到⼀个给定元素的第⼀个索引,如果不存在,则返回-1。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 引入所需的库-->
    <script src="../vue-2.4.0.js"></script>
    <script src="../jquery-3.4.1.min.js"></script>
    <script src="../bootstrap/js/bootstrap.min.js"></script>
    <link rel="stylesheet" href="../bootstrap/css/bootstrap.min.css">
    <style>
        .gg{
            padding: 0;
        }
    </style>
</head>
<body>
    <div id="app">
        <!-- 版心 -->
        <div class="container">
            
            
            <div class="modal " id="modal-id">
                <div class="modal-dialog">
                    <div class="modal-content">
                        <div class="modal-header">
                            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                            <h4 class="modal-title">Name</h4>
                        </div>
                        <div class="modal-body">
                            <label for="">请输入要更改的:</label>

                            <input type="text" v-model="carChange" >
                        </div>
                        <div class="modal-footer" >
                            
                            <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
                            <button type="button" class="btn btn-primary"  data-dismiss='modal' @click="change()">修改保存</button>
                        </div>
                    </div>
                </div>
            </div>
            
            <div class="panel panel-info">
                  <div class="panel-heading">
                        <h3 class="panel-title">添加品牌</h3>
                  </div>
                  <div class="panel-body">
                       
                       <form action="" method="POST"  class="form-inline" role="form">
                        <!-- id -->
                        <div class="form-group">
                            <label for="">Id:</label>
                            <input type="number" class="form-control" id="" placeholder="请输入ID" v-model="carId">
                        </div>

                        <!-- name -->
                        <div class="form-group">
                            <label for="">Name:</label>
                            <input type="text" class="form-control" id="" placeholder="请输入品牌名" v-model="carName">
                        </div>                       
    
                        <!-- 添加按钮 -->
                        <button type="button" class="btn btn-primary" @click="add">添加品牌</button>

                        <!-- 查找 -->
                        <div class="form-group">
                            <label for="">搜索关键字</label>
                            <input @keyup='search' type="text" class="form-control" id="" placeholder="请输入要搜索的关键字"  v-model="keySearch">
                        </div>    
                       </form>
                       
                    
                       <!-- 表格区域 -->
                    <table class="table table-hover table-bordered">
                        <thead>
                            <tr>
                                <th>Id</th>
                                <th>Name</th>
                                <th>Ctime</th>
                                <th>Operation</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr v-for="(item,index) in search()" :key="item.carId">
                                <td>{{item.carId}}</td>
                                <td>{{item.carName}}</td>
                                <td>{{item.Time}}</td>
                                <td>
                                <button type="button" class="btn btn-default" @click="del(item)">删除</button>
                                <button type="button" class="btn btn-default gg"><a class="btn btn-primary" data-toggle="modal" href='#modal-id' @click="modify(item)">修改数据</a>
                                </td>
                            </tr>
                        </tbody>
                    </table>
                    
                  </div>
            </div>
            


        </div>
    </div>
</body>
<script>
    let vm = new Vue({
        el:'#app',

        data:{
            list:[
                {
                    carId:1,
                    carName:'奔驰',
                    Time:new Date()
                },
                {
                    carId:2,
                    carName:'宝马',
                    Time:new Date()
                },                
            ],

            carId:'',
            carName:'',
            Time:'',
            keySearch:'',
            carChange:'',
            
            index:''

        },
        methods:{
            // 添加按钮
            add(){
                // 新建一个对象
                let obj={
                    carId:this.carId,
                    carName:this.carName,
                    Time:new Date()
                }
                // some(回调函数(item,index)) ⽅法测试数组中是不是⾄少有1个元素通过了被提供的函数测试。
                // 它返回的是⼀个Boolean类型的值

                // 利用这个方法来判断它里面是否拥有这个值
                
                console.log();
                if(this.list.some(item=>item.carId==this.carId||this.carId==0)){
                    alert('Id是唯一值,不能重复')
                }else{
                    this.list.push(obj)
                }
                // 点击后将框的值赋空
                this.carId=''
                this.carName=''
            },
            
            // 删除按钮
            del(item){
                // splice() ⽅法通过删除或替换现有元素或者原地添加新的元素来修改数组,
                // 并以数组形式返回被 修改的内容。此⽅法会改变原数组
                this.list.splice(this.list.indexOf(item),1)
                
                
            },

            // 搜索按钮
            search(){
                // filter() ⽅法创建⼀个新数组, 其包含通过所提供函数实现的测试的所有元素。
                //  indexOf()⽅法返回在数组中可以找到⼀个给定元素的第⼀个索引,如果不存在,则返回-1。  
                //  includes() ⽅法⽤于判断⼀个字符串是否包含在另⼀个字符串中,根据情况返回 true 或 false。
                return this.list.filter(item=>{
                    return item.carName.includes(this.keySearch)
                })
            },

            // 更改

            modify(item){
                this.index=(this.list.indexOf(item))
            },

            // 确认更改
            change(){
                
                this.list[this.index].carName=this.carChange
                alert('修改成功')
                $('#modal-id').hide()
            },

            
        }
    })
</script>
</html>
Vue 是一种用于构建用户界面的渐进式框架,它提供了一种简单、高效的方式来实现增删改查的功能。下面我将介绍一下使用 Vue 实现增删改查的源码。 首先,我们需要创建一个 Vue 实例,并定义一个 data 对象来存储我们的数据。这个 data 对象中可以包含一个数组,用于存储我们的列表数据。 ```javascript new Vue({ el: '#app', data: { list: [] // 列表数据 }, methods: { add: function(item) { this.list.push(item); // 添加数据 }, remove: function(index) { this.list.splice(index, 1); // 删除数据 }, update: function(index, newItem) { this.list.splice(index, 1, newItem); // 更新数据 }, search: function(keyword) { // 根据关键字搜索数据 // ... } } }); ``` 在 HTML 中,我们可以使用 Vue 的指令来绑定数据和事件。例如,通过 v-for 指令可以轻松地循环渲染列表数据,通过 v-model 指令可以实现表单数据的双向绑定。 ```html <div id="app"> <ul> <li v-for="(item, index) in list">{{ item }}</li> </ul> <input v-model="inputValue"> <button @click="add(inputValue)">添加</button> </div> ``` 通过上述源码,我们实现了基本的增删改功能。当点击添加按钮时,会调用 add 方法将输入框中的值添加到列表数据中;当点击某一项时,会调用 remove 方法删除该项数据;当需要更新某一项数据时,会调用 update 方法将新的数据替换旧的数据。此外,我们还可以实现根据关键字来搜索数据的功能,具体实现可以根据实际需求。 通过使用 Vue,我们可以很方便地实现增删改查的功能,同时也能享受到 Vue 提供的其他便利特性,如数据的响应式更新、组件化开发等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值