【vue】利用vue实现元素增删查

首先引入vue

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

body部分如下: 给每一个li绑定一个id,这样删除就删除指定的id即可

<body>
    <div id="app">
        <input type="text"
            v-model="nextFruit"
            v-on:keyup.enter="addNewFruit"
            placeholder="请输入需要添加的水果">
        <ul>
            <li is="item"
                v-for="(fruit,index) in fruitList"
                v-bind:key="fruit.id"
                v-bind:title="fruit.title"
                v-on:remove="fruitList.splice(index,1)"></li>
        </ul>
    </div>
</body>

vue代码: 

由于每次都需要拼接li,并给其绑定事件,所以在这里我们定义一个模板,然后再li里面利用is引入该模板即可。

在这里我们还使用了$emit()对自定义的的方法进行绑定,remove方法使用的是数组中的splice(index,1)方法进行移除,第一个参数传入索引值,第二个参数表示改动的数量,填1即可。

<script>
    //定义组件模板
    Vue.component('item',{
        //拼接li元素
        template:'\<li>\
                        {{ title }}\
                        \<button v-on:click="$emit(\'remove\')">删除</button>\
                 \</li>\
                 ',
        props:['title']
    });

    new Vue({
        el:'#app',
        //默认值
        data:{
            nextFruit:'',
            fruitList:[
                {
                    id:1,
                    title:'苹果'
                },
                {
                    id:2,
                    title:'梨子'
                },
                {
                    id:3,
                    title:'香蕉'
                }
            ],
            //给出下一个id的起始值
            newId: 4
        },
        methods:{
            //添加水果的方法
            addNewFruit: function () {
                //添加新水果
                this.fruitList.push({
                    id:this.nextId++,
                    title:this.nextFruit
                });
                //默认值为空
                this.nextFruit = ''
            }
        }
    })
</script>

效果图:







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值