Vue中父子传值的那些问题

父传子

1.父传子

​ **父:自定义属性名 + 数据(要传递)=> :value=“数据”
**

子:props ["父组件上的自定义属性名“] =>进行数据接收

father.vue

<template>

  <div>

  我是爸爸:{{ message }}

  <hr />

  <Son :toSonData1="toSonData"></Son>

  :toSonDate1 于子组件props接受的名字相同

 </div>

</template>

 

<script>

import Son from "./components/son.vue";

export default {

 data() {

  return {

   message: "儿子你好",

   toSonData: "大嘴巴子", //给子组件的值

  };

 },
···


 components: {

  Son,

 },

};

</script>

<style lang='scss' scoped>

</style>

son.vue

<template>

  <div>

  我是儿子:{{ message }}

  <br />

  爸爸给我的礼物:{{ toSonData1 }}

 </div>

</template>

 

<script>

export default {

 props: ["toSonData1"], //第一种方式

 //  props: {

 //   //第二种方式

 //   toSonData: {

 //    type: String,

 //    default: function () {

 //     return "";

 //    },

 //   },

 //  },

 data() {

  return {

   message: "爸爸你好",

  };

 },

};

</script>

<style lang='scss' scoped>

</style>

子传父

2.子传父

子:this.$emit(‘自定义事件名称’, 数据) 子组件标签上绑定@自定义事件名称='回调函数’

父:methods: { 回调函数() { //逻辑处理 } }

father2.vue

<template>

  <div>

  我是爸爸:{{ message }}

  <br />

  儿子传来的值:{{ sendSonMessage }}

  <hr />

  <Son :toSonData="toSonData" @toFatherData="sendSonData"></Son>

  <!-- :toSonDate 给子组件传值 -->

 </div>

</template>

 

<script>

import Son from "./components/son2.vue";

export default {

 data() {

  return {

   message: "儿子你好",

   toSonData: "大嘴巴子", //给子组件的值

   sendSonMessage: "",

  };

 },



 components: {

  Son,

 },

 created() {

  this.sendSonData();

 },

 methods: {

  sendSonData(data) {

   console.log(data);

   this.sendSonMessage = data;

  },

 },

};

</script>

<style lang='scss' scoped>

</style>

son2.vue

<template>

  <div>

  我是儿子:{{ message }}

  <br />

  爸爸给我的礼物:{{ toSonData }}

  <br />

  <button @click="toFatherData">给爸爸传值</button>

 </div>

</template>

 

<script>

export default {

 props: ["toSonData"], //第一种方式

 //  props: {

 //   //第二种方式

 //   toSonData: {

 //    type: String,

 //    default: function () {

 //     return "";

 //    },

 //   },

 //  },

 data() {

  return {

   message: "爸爸你好",

  };

 },

 created() {

  this.toFatherData();

 },

 methods: {

  toFatherData() {

   this.$emit("toFatherData", "给爸爸的爱");

  },

 },

};

</script>

<style lang='scss' scoped>

,

 //    default: function () {

 //     return "";

 //    },

 //   },

 //  },

 data() {

  return {

   message: "爸爸你好",

  };

 },

 created() {

  this.toFatherData();

 },

 methods: {

  toFatherData() {

   this.$emit("toFatherData", "给爸爸的爱");

  },

 },

};

</script>

<style lang='scss' scoped>

</style>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Denny Hope

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

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

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

打赏作者

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

抵扣说明:

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

余额充值