<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="js/vue.js"></script>
    <script src="js/axios.js"></script>
</head>
<body>
<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 itemList"
                    v-bind:index="index" v-bind:item="item"
                    v-on:laowangdelete="vueDelete(index)"></todo-items>
    </todo>
</div>
</body>
</html>
<script>
    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: ['item', 'index'],
        template: "<li>{{index}}.{{item}} <button @click='ButtonRemove(index)'>删除</button></li>",
        methods: {
            ButtonRemove: function (index) {
                //注意laowangdelete是自定义事件名称,小写
                //通过绑定的自定义事件(laowangdelete)来调用vue事例中的函数
                this.$emit('laowangdelete', index)
            }
        }
    })
    new Vue({
        el: "#app",
        data: {
            title: "来自Vue事例的待办事项title",
            itemList: ['读书', '学习', '运动']
    },
    methods: {
        vueDelete: function (index) {
            //splice 从当前元素删除1个
            this.itemList.splice(index,1)
        }
    }

})

</script>