首页 > 其他 > 详细

Vue插槽与删除按钮

时间:2021-06-17 12:12:38      阅读:22      评论:0      收藏:0      [点我收藏+]
    <div id="app">
        <todo>
            <todo-title slot="todo-title" v-bind:title="title"></todo-title>
            <todo-items slot="todo-items" v-for="(item,index) in items" v-bind:item="item" v-bind:index="index" v-on:remove="removeItems"></todo-items>
         </todo>
    </div>
    <script type="text/javascript">
        //定义组件todo是组件名称
        Vue.component("todo", {
            template:  <div><slot name=\‘todo-title\‘></slot><ul><slot name=\‘todo-items\‘></slot></ul></div>//模板
        });
        Vue.component("todo-title",{
            props: [title],
            template: <div>{{title}}</div>
        });
        Vue.component("todo-items",{
            props: [index, item],
            template: "<li>{{index}}---{{item}}<button @click=‘remove‘>删除</button></li>",
            methods:{
                remove: function () {
                    this.$emit("remove") 第一步
                }
            }
        })
        var vue = new Vue({
            el: "#app",
            data: {
               title: 标题!,
               items: ["迪丽热巴", "杨幂", "刘亦菲"]
            } ,
            methods: {
                removeItems: function (index) {
                    this.items.splice(index, 1) 第二步
                }            
            }
        })
    </script>

插槽的核心内涵就是,只不过slot是插槽标识而已。

<div id="todo">
        <div id="todo-title">
            标题
        </div>
        <ul id="todo-items">
            <li>111</li>
            <li>111</li>
            <li>111</li>
        </ul>
    </div>

删除总结:首先在Vue.component定义组件里面是不能直接调取 var vue = new Vue 里的方法的,必须要间接的调取数据。

                  通过第一步的方法调取到第二步的方法。

                  注意1:在自定义组件里要先绑定  v-on:remove="removeItems"  第一步的 remove 方法 然后到第二步 removeItems

                              方法,因为只有这样  <button @click=‘remove‘>删除</button> 删除按钮里绑定的 remove 事件才能在自定义组件里                             

                              找到。总之就是先写 remove 方法,然后再 button 里绑定该方法,我们为了能够在自定义组件里响应该方法,需要

                              进行 v-on:remove 的一个绑定,这一就能够找到 removeItems 第二步中的方法。

                  注意2:在removeItems 里需要传一个参数 index 就是编号(removeItems: function (index))而该参数在

                                v-for="(item,index) in items" 已经自动的传入了,所以在 v-on:remove="removeItems" 不用在传值了。

Vue插槽与删除按钮

原文:https://www.cnblogs.com/shuicai/p/14892185.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!