vue组件传值

父给子传:

父组件:用“:”绑定,是v-bind的缩写

<template>
    <div>
        <List :deleteTodo="deleteTodo" :checkTodo="checkTodo" /> // 这里是父组件引用子组件List
    </div>
</template>

子组件:用“props”接收

export default {
  name: 'List',
  props: ['todos', 'deleteTodo', 'checkTodo']
}

子给父传:

父组件:用@符,是v-on的缩写,表示监视

<Footer @checkAlltodo="checkAlltodo" @clearAlltodo="clearAlltodo" />

子组件也是要先props接收,

export default {
  name: 'Footer',
  props: ['checkAlltodo', 'clearAlltodo'],
  methods: {
    clearAll() {
      this.$emit('clearAlltodo')  //用$emit('事件名',值)触发
    },
  }
}

有时候,v-bind 和v-on 会有相同的效果。


爷孙传值:

全局事件总线:$bus.$on('事件名',方法),用完了记得要销毁。

爷组件:

export default {		
    mounted() {
		this.$bus.$on('checkTodo',this.checkTodo)
		
	},
	beforeDestroy() {
		this.$bus.$off('checkTodo')
	    
    }
}

孙组件:

export default {			
    methods:{
        handleCheck(id){
        this.$bus.$emit('checkTodo',id)
	    }
    }
}

也可以代代相传,但是比较麻烦。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值