美文网首页
2018-03-29

2018-03-29

作者: 小熊530 | 来源:发表于2018-03-29 00:33 被阅读0次

    子组件向父组件传递事件

    父组件的数据是通过变量传递给子组件,子组件内的prop接受数据;子组件内部发生的事件,子组件负责监听事件发生,处理事件则是交给父组件。所以子组件需要将自己内部发生的事件传出去,告诉父组件我这里面出发了什么事情。

    由于组件在作用域上是一个独立的、封闭的,有自己的生命周期、有自己的选项对象,它就像是装在一个封闭的盒子里面,它只是被一个更大的盒子(父组件)套住了,没有办法直接将内部绑定的事件,直接绑定在外部组件上或者是父组件上。

    它需要一个中间媒介,将自己内部的事件传递出去:

    父组件中:
    <template>
     <child @A(方法名)="a(父组件方法名)"></child>
     </template>
     
      methods: {
       a(val) {  //val是由子组件传递过来的
          //处理子组件内部事件
     }
    

    将父组件内部方法绑定到“方法变量”中。这个方法就会传递带child子组件内部去。在子组件中某个元素会绑定一个事件,如:

    子组件中:
    <template>
    <button @click="a(参数)"></button>
    </template>
    
    
     methods: {
       a(val) {
          this.$emit('A', val)  
       }
     }
    

    这样组件每部的参数就可以通过变量A这个媒介传递到父组件的函数内。
    终于大搞搞清楚里面的关系了。

    相关文章

      网友评论

          本文标题:2018-03-29

          本文链接:https://www.haomeiwen.com/subject/utupcftx.html