Vue——内容分发与自定义事件

内容分发 slot
事件 $emit调用

具体实例:


<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Documenttitle>
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 items" v-bind:item="item" v-bind:index="index" v-on:remove="removeItem(index)">todo-items>
    todo>
div>


<script src="https://cdn.jsdelivr.net/npm/vue">script>
<script type="text/javascript">

    Vue.component("todo",{
        template: "
\ \
    \ \
\
\ "
}); Vue.component("todo-title",{ props: ["title"], template: "

{{title}}

"
}); Vue.component("todo-items",{ props: ["item", "index"], template: "
  • {{item}}
  • "
    , methods: { remove: function (index) { this.$emit("remove", index); } } }); var vm = new Vue({ el: "#app", data: { title: "小白", items: ["芒果","菜菜","老婆"] }, methods: { removeItem: function (index) { this.items.splice(index, 1); } } });
    script> body> html>

    你可能感兴趣的:(web前端,Vue,vue,slot,内容分发,自定义事件,emit)