vue父子组件之间传参

父组件就是要展示内容的一个页面,需要在路由中进行声明,子组件不需要再路由中进行声明,如下图:
在这里插入图片描述
子组件尽量写在compontents文件夹下边

父组件向子组件传参

  • 父组件
    需要在父组件的页面内引入子组件,可以使用驼峰式写法
<template>
  <div>
    <mode :cMode="message" :ctext="text"></mode>
  </div>
</template>

<script>
  import mode from '@/view/child'
  export default{
    data(){
      return{
        message:'Hello,您好呀!',
        text:'哈哈哈哈'
      }
    },
    components:{
      mode
    }
  }
</script>

<style>
</style>

  • 子组件
<template>
  <div>
    <h2>子组件的内容是:{{cMode}}{{ctext}}</h2>
  </div>
</template>

<script>
  export default{
    data(){
      return{
      }
    },
    props:['cMode','ctext'] //props是父组件向子组件必须的
	//且props可以以数组的形式传递也可以以对象的形式传递 上边是数组,下边是以对象形式
	// props:{
    //   cmode:{
    //     type:Array, //传过来的数据的类型,还有其他类型如:objec、String、number等
    //     default:'aaaaaa',//默认值
    //     // default:[],//默认值  vue2.5.3一下的版本这样写的话不会报错
    //     // 类型是对象或者数组时,默认值必须是一个函数
    //     // default(){ return [] }
    //     required:true   ,
    //     //required属性是布尔值,当它为true时,别人在用这个组件的时候,必须传这个属性,不传这个属性就会报错
    //     // 一旦有required这个属性就必须传这个值
    //   }
    // }
  }
</script>

<style>
</style>

子组件向父组件传参

  • 父组件
<template>
  <div>
    <h2>{{info}}</h2>
    <mode :cMode="message" :ctext="text" @parentClick="pClick"></mode>
  </div>
</template>

<script>
  import mode from '@/view/child'
  export default{
    data(){
      return{
        message:'Hello,您好呀!',
        text:'哈哈哈哈',
        info:''
      }
    },
    components:{
      mode
    },
    methods:{
      pClick(receive){
        this.info = receive
        console.log('pClick')
      }
    }
  }
</script>

<style>
</style>

  • 子组件
<template>
  <div>
    <h2>子组件的内容是:{{cMode}}{{ctext}}</h2>
    <button @click="childClick"></button>
  </div>
</template>

<script>
  export default{
    data(){
      return{
        item:'欢迎你的到来!'
      }
    },
    props:['cMode','ctext'],
    methods:{
      childClick(){
        this.$emit('parentClick',this.item)
      }
    }
  }
</script>

<style>
</style>

使用一个图解来解释关系在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值