Vue 组件之间传值

父子组件的区分:
image.png

注意: 在类似 <header></header>我们定义的标签名里操作。

一、父组件向子组件传递数据

在Vue中,可以使用props向子组件传递数据。

子组件部分:
image.png
这是 header.vue的HTML部分,logo时在data中定义的变量。

如果需要从父组件获取logo的值,就需要使用 props: ['logo']
image.png
在props中添加了元素之后,就不需要在data中在添加变量了

父组件部分:
image.png
在调用组件的时候,使用V-bind将logo的值绑定为App.vue中定义的变量logoMsg
image.png
然后就能将App.vue中logoMsg的值传给header.vue了:
image.png

回顾父组件向子组件传递数据

  1. 在子组件中的 props中添加变量
  2. 在父组件中,调用子组件名的标签,在标签里使用 v-bind绑定在props里添加的变量。
  3. 让 v-bind绑定父组件中data的变量。

二、子组件向父组件传递数据

子组件主要通过事件传递数据给父组件

子组件部分:
image.png
这是login.vue的HTML部分,当 < input>的值发生变化的时候,将username传递给App.vue
(注意:这里绑定了一个 change事件,类似@click中的click事件)

首先声明一个方法 setUser, 用change事件来调用setUser
image.png
在setUser中,使用了 $emit来遍历transferUser事件,并返回this.username。
其中transferUser是一个自定义的时间,功能类似于一个中转,this.username将通过这个时间传递给父组件

父组件部分:
image.png

在父组件App.vue中,声明了一个方法getUser,用transferUser事件调用getUser方法,获取到从子组件传递过来的参数username

image.png

getUser方法中的参数msg就是从子组件传递过来的参数 username。

回顾子组件向父组件传递数据:

  1. 在子组件中定义一个事件,事件绑定了一个方法。
  2. 方法中使用 this.$emit("自定义事件名", 要传递的参数),发射一个我们自定义事件名,并携带要传递的参数。
  3. 在组件名标签中调用this.$emit设置的事件,并绑定一个方法
  4. 通过绑定的方法获取this.$emit传递的参数,并赋值给父组件中的data中的元素

三、子组件向子组件传递数据

Vue中没有直接子对子传参的方法。为了方便开发,Vue推出了一个状态管理工具Vuex, 可以很方便实现组件之间的参数传递。
下面是vuex的笔记:
链接:vuex百度云笔记
提取码:cqt5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值