[JS][Vue]学习记录之子向父传值

demo地址
前面介绍了父组件向子组件传值,那么子组件如何向父组件传值呢?
以前面的demo为例,假如header要向app.vue传递一个值.我们需要利用$emit()方法来实现.
首先在header中:

<script>
export default
{
  name: 'app-header',
    props:{
      info:{
        type : String
      }
    },
    data(){
  // noinspection JSAnnotator
  return{
    title : '这是一个header'
  }
},
  methods:{
  changeInfo:function (){
    this.$emit("infoChange","子向父传值");
  }
}
}
</script>

说明:

  • infoChange表示注册了一个事件,这是事件名
  • 后面的"子向父传值"是我要传递给父组件的参数

然后我们需要在app.vue中绑定这个事件:

<template>
  <div id="app">
    //绑定注册事件
    <app-header v-on:infoChange="update($event)" v-bind:info="info"></app-header>
    <myComponent v-bind:users="users"></myComponent>
    <myComponent v-bind:users="users"></myComponent>
    <app-footer v-bind:info="info"></app-footer>
  </div>
</template>

说明:

  • infoChange:就是绑定的事件名和header之中的注册事件一致.
  • "update($event)":绑定事件需要执行的方法,在这个方法内我们可以接收到传递过来的值.
methods:{
    update:function (info){
      this.info = info;
    }
  }

这样就实现了从子组件到父组件传值的过程.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 5,079评论 0 29
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,933评论 18 139
  • 继续推进。 第五章 反刍:重新揭开结痂的情绪伤疤 当遭遇痛苦的经历时,对于许多人,在自我反思的过程中,不仅没有获得...
    胆小的鳄鱼阅读 839评论 0 0
  • 1 日更两篇文章 休假的第一天早上起来,内心还是很不愉快的,今天本是女儿去上古筝课的,但我俩发生了矛盾,也打电话给...
    走向阳光的自己阅读 194评论 2 1
  • 南方这个时节,天气的热情还未退却。听深圳的朋友说,现在还只是穿一件单衣加一件外套。而北方已是大雪飘飘,白茫...
    Harvest收获阅读 1,037评论 97 161