Vue入门(3):制作一个简易的增加删除查找数据的案例

Vue入门(3):制作一个简易的增加删除查找数据的案例

我们都知道Vue很好用,那我们要怎么来用vue呢!

在这里我们需要引进Vue和layui,具体请查看我前面的博客,并且我们还需要安装Vue.js devtools,我这边使用火狐浏览器,安装步骤如下:

1、点开右上角的菜单(三横)
2、点击附加组件
3、输入vue,点击Vue.js devtools,
4、点击添加到Firefox
这样就可以啦!

这里我学做了一个简易的增加删除查找数据的案例,话不多说,直接上代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie==edge">
    <link rel="stylesheet" href="./layui/css/layui.css">
    <title>案例</title>
    <script src="./lib//vue.js"></script>
    <style>
    </style>
</head>

<body>
    <div id="app">
        <blockquote class="layui-elem-quote layui-text">
            添加商品
        </blockquote>
        <div class="layui-form-item">
            <div class="layui-inline">
                <label class="layui-form-label">ID</label>
                <div class="layui-input-inline">
                    <input type="text" name="text" lay-verify="title" autocomplete="off" class="layui-input"
                        v-model="id">
                </div>
            </div>
            <div class="layui-inline">
                <label class="layui-form-label">名字:</label>
                <div class="layui-input-inline">
                    <input type="text" name="text" lay-verify="title" autocomplete="off" class="layui-input"
                        v-model="name">
                </div>
            </div>
            <button type="button" class="layui-btn layui-btn-normal" id="LAY-component-form-setval"
                @click="add()">添加</button>
            <div class="layui-inline">
                <label class="layui-form-label">搜索名称关键字:</label>
                <div class="layui-input-inline">
                    <input type="text" name="text" lay-verify="title" autocomplete="off" class="layui-input"
                        v-model="keywords">
                </div>
            </div>
        </div>

        <div class="layui-row">
            <div class="layui-col-xs3">
                <div class="grid-demo grid-demo-bg1" style="text-align: center;">ID</div>
            </div>
            <div class="layui-col-xs3">
                <div class="grid-demo" style="text-align: center;">名字</div>
            </div>
            <div class="layui-col-xs3">
                <div class="grid-demo grid-demo-bg1" style="text-align: center;">时间</div>
            </div>
            <div class="layui-col-xs3">
                <div class="grid-demo" style="text-align: center;">操作</div>
            </div>
        </div>
        <div class="layui-row" v-for="item in search(keywords)" :key="item.id">
            <div class="layui-col-xs3">
                <div class="grid-demo grid-demo-bg1" style="text-align: center;">{{item.id}}</div>
            </div>
            <div class="layui-col-xs3">
                <div class="grid-demo" style="text-align: center;">{{item.name}}</div>
            </div>
            <div class="layui-col-xs3">
                <div class="grid-demo grid-demo-bg1" style="text-align: center;">{{item.time}}</div>
            </div>
            <div class="layui-col-xs3">
                <div class="grid-demo" style="text-align: center;"><a href="" @click.prevent="del(item.id)">删除</a></div>
            </div>
        </div>
    </div>
    <script type="text/javascript" src="./layui/layui.all.js"></script>

    <script>

        var app = new Vue({
            el: '#app',
            data: {
                id: '',
                name: '',
                keywords: '',
                list: [
                    { id: 1, name: '宝马', time: new Date() },
                    { id: 2, name: '奔驰', time: new Date() },

                ]
            },
            methods: {
                add() {
                    var car = { id: this.id, name: this.name, time: new Date() }
                    this.list.push(car)
                },

                del(id) {
                    // 第一种方法!!!
                    // this.list.some((item,i) =>{
                    //     if(item.id==id){
                    //         this.list.splice(i,1)
                    //         return true;
                    //     }
                    // })

                    //第二种方法!!!
                    var index = this.list.findIndex(item => {
                        if (item.id == id) {
                            return true;
                        }
                    })
                    this.list.splice(index, 1)
                },
                search(keywords) {
                    // 第一种方式:
                    // var newList = []
                    // this.list.forEach(item => {
                    //     if (item.name.indexOf(keywords) != -1) {
                    //         newList.push(item)
                    //     }
                    // })
                    // return newList;

                    // 第二种方式:
                    return this.list.filter(item =>{
                        if(item.name.includes(keywords)){
                            return item
                        }
                    })
                }
            }
        })
    </script>
</body>

</html>

效果图:增加
在这里插入图片描述
效果图:删除
在这里插入图片描述
效果图:查找
在这里插入图片描述
这边留下我的学习视频的网站。

视频链接: https://www.bilibili.com/video/BV11s411A7h6?p=26.
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值