首页 > web前端 > js教程 > 正文

Vue.js组件的通信之父组件向子父组件的通信(代码)

高洛峰
发布: 2017-03-12 11:34:51
原创
1374人浏览过

这篇文章vue.js组件的通信之父组件向子父组件的通信(代码)

<!DOCTYPE html>
  <html>
  <head>
    <meta charset="UTF-8">
    <title>componentParentChildCommunication</title>
    <script src="js/vue.js"></script>
  </head>

  <template id="parentComp">
    <p>
      I am parent component:{{msg}},The Data from child:{{msg2}}
      <hr>
      <!-- <child @自定义事件名="父方法"></child> -->
      <child @child="parentFn"></child> 
    </p>
  </template>
  <template id="childComp">
    <p>I am child component:{{msg}}</p>
  </template>
  <body>

  <script>
    let child={
      template:'#childComp',
      data(){
        return {
          msg:'child Data'
        }
      },
      mounted(){
      /*this.$emit('自定义事件名',数据);*/
        this.$emit('child',this.msg);
      }
    };

    let parent={
      template:'#parentComp',
      data(){
        return {
          msg:'parent Data',
          msg2:''
        }
      },
      components:{
        child
      },
      methods:{
        parentFn(data){
          this.msg2=data;
        }
      }
    };

    window.onload=function(){ 
      new Vue({
        el:'#app',
        components:{
          parent
        }
      });
    }
    /*父元素向子元素通信关键总结:
      1:在嵌套的子元素(使用时)上:<child @自定义事件名="父方法"></child>;
      2:子元素在加载完成的钩子函数(mounted)上加一个方法:this.$emit('自定义事件名',数据);
      3:父元素上的方法:父方法名(data){...}
    */
  </script>

  <p id="app">
    <parent></parent>
  </p>
  </body>
</html>
登录后复制

以上就是Vue.js组件的通信之父组件向子父组件的通信(代码)的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号