美文网首页
组件通讯

组件通讯

作者: 未来在奋斗 | 来源:发表于2019-11-28 21:06 被阅读0次
     <!-- 
          组件通信:
          1. 父子   通过props
          2. 子父   
                    1. 子组件通过触发自定义的事件 this.$emit('自定义事件的名字', 触发这个事件时传递过去的参数)
                    2. 父组件要收到儿子发来的事件的话,需要在调用儿子组件的时候,通过 v-on 去监听那个自定义事件
                    3. 然后父组件就在那个事件处理函数中干需要做的事情
        
                    PS: 触发事件时如果携带了参数,那么在绑定事件时是通过 $event 接受到的。
                       1. 普通事件,$event 就是事件对象
                       2. 自定义事件,$event 就是传递过来的参数
          3. 兄弟
                  找父亲的操作
                  1. 子->父   $emit()  一定要在父组件中监听自定义事件去执行
                  2. 父->子   props
          4. 其余复杂关系
                  中央事件管理器 | 事件总线
         -->
        <div id="add">
            <zhang></zhang>
            
        </div>
        <script src="vue.js"></script>
        <script>
            Vue.component('zhang',{
                data(){
                    return{
                        son1Name:'张老一',
                        son2Name:'张老二'
                    }
                },
                template:`
                 <div>
                  <h1>Hello</h1>
                <!--:name="son1Name"将父组件传来的数据传入到子组件中-->
                  <zhang-son1 :name="son1Name" @abc="fn1($event)" @efg="fn2" @cg="fn3"></zhang-son1>
                  <hr />
                  <zhang-son2 :name="son2Name"></zhang-son2>
                </div>
                `,
                methods:{
                    fn1(event){
                        this.son1Name =event
                    },
                    fn2(event){
                        this.son1Name = event
                    },
                    fn3(event){
                        this.son2Name = event
                    }
                }
            })
            
            Vue.component('zhang-son1',{
                props:{
                    name:String
                },
                template:`<div>
                      <h1>son1</h1>
                      <p>我的名字是:{{ name }}</p>
                    <button @click="fn1">不喜欢父亲给我取得名字,我要修改</button>
                       <button @click="fn2">我去给父亲商量商量</button>
                     <button @click="fn3">修改弟弟的名字</button> 
                    </div>`,
            methods:{
                fn1(){
                    this.son1Name =event
                },
                fn2(){
                    <!-- $emit()是联系父组件的时间,第一个参数是自定义事件名,第二个参数是要携带的数据 -->
                    this.$emit('abc','张三丰')
                },
                fn3(){
                    this.$emit('cg','张二狗')
                }
            }
            })
            //组件构造器
            Vue.component('zhang-son2',{
                props:{
                    name:String 
                },
                //注册组件
                template:`
                <div>
                  <h1>son2</h1>
                  <p>我的名字是:{{ name }}</p>
                </div>
                `
            })
            const app = new  Vue({
                el:"#add"
                
            })
        </script>

相关文章

  • vue组件通信

    1.组建通讯---父子组件通讯 父子通信通过props属性进行传值 父组件 子组件 1.组建通讯---子父组件通讯...

  • Vue——组件通讯

    组件通讯 一、组件:组件是可复用的 Vue 实例 二、创建组件: 例如: 三、组件通讯 父传子:1.创建两个组件A...

  • 7天深入Vue - vue组件之间的通讯与插槽(一)

    常用组件之间的通讯 1.props vue 基础父子组件通讯 数组形式 子组件定义props:['title', ...

  • 组件通讯

    1.什么是组件 组件 (Component) 是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封...

  • 组件通讯

    http://taobaofed.org/blog/2016/11/17/react-components-com...

  • 组件通讯

    2017年46周学习总结 angular组件间通讯 组件输入输出 当子组件需要向父组件传递信息时需要用到输出属性,...

  • vue组件如何通信?有几种方式?

    在vue中组件通讯可以分为父子组件通讯和非父子组件通信。父组件通过props的方式向子组件传递数据,而子组件可以通...

  • vue2-父子组件通信

    父组件到子组件通讯 父组件到子组件的通讯主要为:子组件接受使用父组件的数据,这里的数据包括属性和方法(String...

  • vue页面和component组件之间双向通讯(续1)

    VUE中父组件、子组件之间的双向通讯可以参见笔者的《vue页面和component组件之间双向通讯[https:/...

  • 同级之间传值

    一.父子组件 1.父组件到子组件通讯父组件到子组件的通讯主要为:子组件接受使用父组件的数据,这里的数据包括属性和方...

网友评论

      本文标题:组件通讯

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