vue中父子组件传参几种方式

传参数时

  父传子 

   

父组件使用v-bind进行参数绑定简写成: <MyBody  :data="datas" />

子组件通过 props:['data'],来接收数据

 子传父 

  传参就需要通过this.$emit('add',要传的数据)

然后父需要定义一个add()方法来接收数据让子调用父的方法给父传值

传方法时

  父调用子方法

 父组件使用 <MyHeader ref="addTodo"/> <button @click="click">点击</button>

定义一个点击方法

click() {
     this.$refs.addTodo.get('Hello World');
     }        

  子组件定义get方法

 get(e) {
                    console.log(e)
   },

这个方法也可以进行传递参数

  子调用父方法

父组件通过v-on进行事件绑定简写@ <MyHeader v-on:addData="add"/>

子组件通过this.$emit('addData',参数)进行调用父的方法

如果嫌弃前面这些很麻烦的话也可以直接进行全局事件进行定义在main.js中直接使用

 beforeCreate() {Vue.prototype.$bus = this; },进行全局事件的绑定,在你需要的传递的方法

在父直接定义

mounted() {

      this.$bus.$on('add',this.add)

  },

然后再子组件直接通过 this.$bus.$emit('add',data)接收并且传上数据

记得挂载完后要通过beforeDestroy(){this.$bus.$off('add')}进行销毁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值