Vue组件传值

Props 父传子

父组件内
<template>
    <Son :list='xxx'/>
</template>
<script>
    import Son from './Son'
    export default{
        *注册组件
      components:{Son}  
}
</script>


子组件内
<template>
    <p>{{list}}</p>
</template>

<script>
  export default {
  props: ["list"],
</script>

组件传参校验  写成对象模式
Vue.component('demo',{
    props:{
        list:String,
        list:[String,Number]
        list:{
            type:Array,
            default:function(){
                return[]            
            }   ,
            list:{
                type:Number,
                required:true            
            }     
        }    
    }
})
//
default  默认值
required;true 是否必须传入

$emit 子传父

父组件
<template>
    <Son @passFather='getSon' />
</template>

<script>
  import Son from './Son'
    export default{
        components:{Son},
        methods:{
            getSon(a){ a //接收的值
                console.log(a)
            }
        }
    }
</script>

子组件
<template>
    <button @click='clickHanlder'></button>
</template>

<script>
    export default{
      methods:{
            clickHanlder(){
                this.$emit('passFather',(a)) a传递的值
            }
        }
    }
</script>

中央事件总线(万能)

在 main.js中
Vue.prototype.$bus = new Vue()

A组件内
<template>
    <button @click="clickHandler"></button>
</<template>

<script>
    export default{
            methods:{
                clickHandler(){
                    this.$bus.$emit('passB','发送给B')
                }
            }
        }
</script>

B组件内
<template>
    <P>{{getA}}</p>  //发送给B
</<template>

<script>
    export default{
            data(){
                return{
                    getA:''
                }
            }
            mounted(){
                this.$bus.$on('passB',function(val){  // val =  接收的值 = '发送给B'
                    this.getA = val
                })
            }
        }
</script>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值