【Vue】通过自定义组件事件绑定,让【父组件】获取【子组件】的值(emit方式,图文+代码示例)

 1、子组件School.vue

<template>
  <!-- 组件一 -->
  <div class="demo">
    <h2>---------【School.vue】子组件---------</h2>
    <h2>学校名称:{{ schoolName }}</h2>
    <h2>学校地址:{{ address }}</h2>
        <button @click="showName1">点击把【学校和地址】传给父组件</button>
           <h2></h2>
  </div>
</template>

<script>
// 把组件暴露出去,方便引入  Vue.extend可以省略
export default {
  // eslint-disable-next-line vue/multi-word-component-names
  name: "School",
  data() {
    return {
      schoolName: "清华大学",
      address: "北京",
    };
  },
  methods: {
    showName1() {
      this.$emit('getInfo',this.schoolName,this.address);
      // alert("ok");
    },
  },
};
</script>

<style>
.demo {
  background-color: antiquewhite;
  border: 1px red solid;
  padding-left: 10px;
}
</style>

2、父组件App.vue

 

<template>
  <div id="myapp">
    <School @getInfo="getInfo"> </School>
    <h2>---------【App.vue】父组件---------</h2>
    <h2>学校名称:{{ appSchoolName }}</h2>
    <h2>学校地址:{{ appAddress }}</h2>
   </div>
</template>

<script>
// 引入组件
import School from "@/components/School.vue";

// 注册组件
export default {
  name: "App",
  components: {
    School,
  },
  data() {
    return {
      appSchoolName:"",
      appAddress: "",
    };
  },
  methods: {
    getInfo(a,b) {
      
      
      this.appSchoolName=a;
      this.appAddress=b;
      
      // --------- 可以往数组里边放了
    },

  },
};
</script>

<style scoped>
#myapp {
  border: 1px rgb(134, 0, 0) dashed;
  /* height: 400px; */
  padding-top: 20px;
  padding-left: 10px;
  /* background-color: aqua; */
}

</style>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敦厚的曹操

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值