zoukankan      html  css  js  c++  java
  • Vue学习笔记-组件通信-子传父(自定义事件)

    props用于父组件向子组件传递数据,还有一种比较常见的是子组件传递数据或事件到父组件中。
    我们应该如何处理呢?这个时候,我们需要使用自定义事件来完成。
    什么时候需要自定义事件呢?
    当子组件需要向父组件传递数据时,就要用到自定义事件了。
    我们之前学习的v-on不仅仅可以用于监听DOM事件,也可以用于组件间的自定义事件。
    自定义事件的流程:
    在子组件中,通过$emit()来触发事件。
    在父组件中,通过v-on来监听子组件事件。

     1 <div id="app">
     2     <cnp @itemclick="cnpClick"></cnp>
     3 </div>
     4 
     5 <template id="cnp">
     6     <div>
     7         <button v-for="item in catgories" @click="btnclick(item)">
     8             {{item.name}}
     9         </button>
    10     </div>
    11 </template>
    12 
    13 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    14 <script>
    15     const cnp = {
    16         template: '#cnp',
    17         data () {
    18             return {
    19                 catgories: [
    20                     {id: 'aaa', name: '热门推荐'},
    21                     {id: 'bbb', name: '手机数码'},
    22                     {id: 'ccc', name: '家用办公'},
    23                     {id: 'ddd', name: '居家用品'}
    24                 ]
    25             }
    26         },
    27         methods: {
    28             btnclick (item) {
    29 //                console.log(item)
    30                 this.$emit('itemclick', item)
    31             }
    32         }
    33     }
    34 
    35     const app = new Vue ({
    36         el: '#app',
    37         data: {
    38             message: 'aaaaa'
    39         },
    40         components: {
    41             cnp
    42         },
    43         methods: {
    44             cnpClick (item) {
    45                 console.log(item)
    46             }
    47         }
    48     })
    49 </script>
    不积跬步无以至千里
  • 相关阅读:
    背景透明度IE兼容性代码
    酷站收藏
    洛谷P1142 轰炸 数学
    洛谷P1282 多米诺骨牌
    洛谷P1247 取火柴游戏 数学题 博弈论
    洛谷P1135 奇怪的电梯 广搜
    洛谷P1077 摆花 动态规划
    洛谷P1161 开灯 数学
    洛谷P1154 奶牛分厩 数学
    洛谷P2147 [SDOI2008]Cave 洞穴勘测 Link-Cut Tree LCT
  • 原文地址:https://www.cnblogs.com/lyt0207/p/11906335.html
Copyright © 2011-2022 走看看