美文网首页
vue页面和component组件之间双向通讯(续1)

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

作者: 工程师54 | 来源:发表于2021-08-02 00:20 被阅读0次

    VUE中父组件、子组件之间的双向通讯可以参见笔者的《vue页面和component组件之间双向通讯》。

    第一种通讯方式【参数传递】

    上文中双向通讯的方式可以总结为:

    1、父组件向子组件传递参数

    第一步、父组件将需要传递的数据放置到调用子组件的参数变量中
    <子组件名   参数名="参数变量"  .....    />

    第二步、子组件通过props接受父组件通过参数变量传递来的数据
    props: {
        参数变量1: {
          type: String, 
         defult: ''
        },

    第三步、子组件在watch中监控参数变量1,一旦有变化则进行相关逻辑处理
       参数变量1(val){
             .。。。。。。。。
        };

    2、子组件向父组件传递参数

    第一步、子组件通过如下命令将参数值传递给父组件
    this.$emit('paramchanged', 参数值);

    第二步、父组件通过如下方式获取到子组件传递过来的参数值(存放在参数变量中)
    <子组件名  v-bind:参数名="参数变量" v-on:paramchanged="参数变量 = $event"  .....    />

    第三步、父组件在watch中监控参数变量,一旦有变化则进行相关逻辑处理

       参数变量(val){

             .。。。。。。。。

        };

    以上通讯方式的优点(同时也是缺点)是参数必须有变化,传递过来后来才能触发watch。

    第二种通讯方式【互调方法】

    1、在父组件中调用子组件中的方法

    第一步,父组件中给子组件命名(如为childname)
    <子组件名   ref="childname"  .....    />

    第二步,父组件中可以直接调用子组件中的方法
      this.$refs.sub_child.addReport(1);    //addReport(1)是子组件methods区域的一个方法。

    2、在子组件中调用父组件中的方法

    在子组件中执行如下命令:
    this.$parent.$parent.$parent.$parent.$parent.方法名(参数清单) ;
    方法名是父组件methods中的任意一个方法。
    特别注意:以上是通过$parent访问父组件,具体需要多少个$parent,需要在开发的时候确定。

    相关文章

      网友评论

          本文标题:vue页面和component组件之间双向通讯(续1)

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