Vue组件通信的方式---props

62 阅读1分钟

vue组件通信的方式---props

一、父传子

父传子是最简单的组件通信。可以直接利用props。

父组件

<template>
  <div>
    <h1>{{message}}</h1>
     <!--在这里将数据传递给HeaderInfo子组件  -->
    <HeaderInfo :info='message'/>
    <SchoolInfo/>
  </div>
</template>

<script>
import HeaderInfo from './components/Header.vue'
import SchoolInfo from './components/SchoolInfo.vue'

export default {
    name:'App',
    data(){
        return{
            message:'app'
        }
    },
    components:{
        HeaderInfo,
        SchoolInfo
    }
}
</script>

<style>
    *{
        margin: 0;
        padding: 0;
    }
</style>

子组件

<template>
  <div class="header">
    <h1>{{msg}}</h1>
    
    <!--接受到之后 可以使用父组件的数据  -->
    <h2>app的数据:{{info}}</h2>
  </div>
</template>

<script scope>
export default {
    name:'HeaderInfo',
    data(){
        return {
            msg:'这是头部组件'
        }
    },
    <!--通过props接收  -->
    props:['info']

}
</script>

<style>
    .header{
        background-color: antiquewhite;
        padding: 5px;
    }
</style>

我们还可以在接收的时候同时对数据进行限制

props:{
        info:{
            type:String,//对数据类型进行限制
            require:true//对必要性进行限制 true为必须,false为非必须
        },
        num:{
            type:Number,
            default:120
        },
        color:{
            type:String,
            require:true
        }
    }