vue父组件传值子组件,(vue父组件与子组件的通信)

6 篇文章 0 订阅
2 篇文章 0 订阅

 pops传值

 耐心五分钟,,学会vue组件通信的父传子

父组件

<template>
  <div style="width: 600px;height: 600px;background-color: #000;color: #FFFFFF;">
    <h1> {{ fatherMsg }} </h1>
    <h1> {{ fatherMessage }} </h1>
    <!-- 这边在子组件v-bind绑定你要传递去子组件中的数据 -->
    <oni-gang :dataOne='fatherData' :dataTwo='fun1()'></oni-gang>
    <!-- v-bind:子组件接收时的名字 = '父组件中的数据',父组件中的数据不必须是变量,
        也可是函数、三元表达式等 -->
  </div>
</template>

<script>
  // 映入组件可自定义名字jj
  import oniGang from '../../components/oni-gang/oni-gang.vue'
  export default {
    components: {
      oniGang
    },
    name: 'gebuki',
    data() {
      return {
        fatherMsg: 'gebuki',
        fatherMessage: '这是父组件',
        fatherData:'父组件的data',
      }
    },
    methods: {
        fun1(){
          return '我是数据'
        },
    }
  }
</script>

<style lang="scss">

</style>

 子组件

<template>
  <div style="background-color: #409EFF;margin-top: 100px;">
    <h1>{{ childMsg }}</h1>
    <h2>{{ childMessage }}</h2>
    <h2>{{ dataOne }}</h2>
    <h2>{{ dataTwo }}</h2>
  </div>
</template>

<script>
  export default {
    name: 'oniGang',
    props:['dataOne','dataTwo'],
    // 子组件中通过props接收数据,上面这样,数组形式
    data() {
      return {
        childMsg: 'voni-gang',
        childMessage: '这是子组件'
      }
    },
    methods: {

    }
  }
</script>

<style lang="scss">

</style>

 结果,父组件的数据成功传递到子组件去了,

 

 props验证

父组件

<template>
  <div style="width: 600px;height: 600px;background-color: #000;color: #FFFFFF;">
    <h1> {{ fatherMsg }} </h1>
    <h1> {{ fatherMessage }} </h1>
    <!-- 这边在子组件v-bind绑定你要传递去子组件中的数据 -->
    <oni-gang :dataOne='fatherData' :dataTwo='fun1()'></oni-gang>
    <!-- v-bind:子组件接收时的名字 = '父组件中的数据',父组件中的数据不必须是变量,
        也可是函数、三元表达式等 -->
  </div>
</template>

<script>
  // 映入组件可自定义名字jj
  import oniGang from '../../components/oni-gang/oni-gang.vue'
  export default {
    components: {
      oniGang
    },
    name: 'gebuki',
    data() {
      return {
        fatherMsg: 'gebuki',
        fatherMessage: '这是父组件',
        fatherData:'父组件的data',
      }
    },
    methods: {
        fun1(){
          return '我是数据'
        },
    }
  }
</script>

<style lang="scss">

</style>

 子组件,type,默认值规则等都可以自定义函数,还可以通过validator自定义验证规则,

详细前往Prop — Vue.js

<template>
  <div style="background-color: #409EFF;margin-top: 100px;">
    <h1>{{ childMsg }}</h1>
    <h2>{{ childMessage }}</h2>
    <h2>{{ dataOne }}</h2>
    <h2>{{ dataTwo }}</h2>
    <h2>{{ dataThree.name }}</h2>
  </div>
</template>

<script>
  export default {
    name: 'oniGang',
    // props:['dataOne','dataTwo'], 需要验证的话就写对象形式
    props:{
      dataOne:{
        type:String, // 规定类型
        required: true // 是否必填
      },
      dataTwo:{
        type:[String,Number], // 可以规定为多个类型,满足一个即可
      },
      dataThree:{
        type:Object,
        default:{ // 父组件没有传过来这个值,所以是没有这个值的,但是可以规定一个默认值,
           // 在没有值的情况下就是默认值
          name:'大坏蛋'
        }
      }
    },
    data() {
      return {
        childMsg: 'voni-gang',
        childMessage: '这是子组件'
      }
    },
    methods: {

    }
  }
</script>

<style lang="scss">

</style>

 结果,

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值