Vue2 组件传值

Vue2 组件传值 (用于学习笔记,后面在补)

  • 子给父传递数据
    • 通过父组件给子组件传递函数类型的props实现:子给父传递数据
    • 通过父组件给子组件绑定一个自定义事件实现:子给父传递数据 $emit接收
  • 父传子 props
  • 父传孙
  • bus传值
  • refs传值

常用传值:父传子用prop,子传父用 e m i t , 兄 弟 组 件 传 参 用 emit ,兄弟组件传参用 emitbus。ref

点击下载此Demo完整代码
使用了nanoid,下载此Demo 需要下载依赖:npm i nanoid

1. 子给父传递数据

 以下的两种方式:
  • 通过父组件给子组件传递函数类型的props实现:子给父传递数据
  • 通过父组件给子组件绑定一个自定义事件实现:子给父传递数据
    app.vue 父组件
<template>
  <div id="root">
    <!-- 练习小知识点专用组件 -->
    
    <!-- 通过父组件给子组件传递函数类型的props实现:子给父传递数据 -->
    <lx-demo-school :getSchoolName="getSchoolName"></lx-demo-school>
    <!-- 通过父组件给子组件绑定一个自定义事件实现:子给父传递数据 -->
    <lx-demo-student v-on:haha="getStudentName"></lx-demo-student>
  </div>
</template>

<script>
// 练习小知识点专用组件
import LxDemoStudent from "./components/Lx/LxDemoStudent.vue";
import LxDemoSchool from "./components/Lx/LxDemoSchool.vue";

export default {
   
  name: "App",
  components: {
   
    // 练习小知识点专用组件
    LxDemoStudent,
    LxDemoSchool,
  },
  data() {
   
    return {
   };
  },
  methods: {
   
    // 以下是知识点练习的事件
    getSchoolName(name) {
   
      console.log("我是APP,收到了学校名:", name);
    },
    // 自定义事件
    getStudentName(name) {
   
      console.log("我是APP,收到了学生名:", name);
    },
  },
   
};
</script>
<style>
/*base*/
body {
   
  background: #fff;
}
</style>

LxDemoSchool.vue子组件

<template>
  <div class="lx-box">
    <h2>学校姓名:{
   {
    name }}</h2>
    <h2>学校性别:{
   {
    address }}</h2>
    <button @click="sendSchoolNameBtn">把学校名字给APP</button>
  </div>
</template>

<script>
export default {
   
  name: "school",
  data() {
   
    return {
   
      name: "月球",
      address: "北京",
    };
  },
  props: ["getSchoolName"],
  methods: {
   
    sendSchoolNameBtn() {
   
      this.getSchoolName(this.name);
    },
  },
};
</script>
<style scoped>
.lx-box {
   
  position: absolute;
  right: 10px;
  bottom: 180px;
  background: skyblue;
}
</style>

LxDemoStudent.vue子组件

<template>
  <div class="lx-box">
    <h2>学生姓名:{
   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Bella-520

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

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

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

打赏作者

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

抵扣说明:

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

余额充值