vue中子组件和父组件之间的对象传递

父组件是index.vue,子组件是addressToast.vue

  1. 父组件传递给子组件

父组件代码代码:

//  父组件import引入子组件(子组件路径要对)
import addressToast from '@/components/addressToast'
//  在component中加载组件
components: {
    addressToast
  },
 // 可以在index.vue页面使用addressToast.vue了(字母大写需要换成-符号使用)
 <address-toast v-bind:updateAddress="this.updateAddress" ></address-toast> 

以上就把父组件中定义的updateAddress对象传递给子组件了

子组件代码(接受父组件的值)

// addressToast.vue,接受index.vue传过来的updateAddress值
props: ['updateAddress'],
// prop也可以有另外一种写法,指明接受的数据类型,如String,Number等,
// 像props:{message:{type: String,require:true}},如果是数组或者json对象还需要默认一个返回函数

子组件可以使用updateAddress这个值了

  1. 子组件传递给父组件
    子组件中定义了info对象,在需要的地方使用emit传值就行,比如addressToast组件中有个fun方法
 fun () {
      this.$emit('info','我是子组件传递给父组件的值')
      }

父组件监听这个事件,父组件使用子组件改为

// 父组件代码
<address-toast @info="show" v-bind:updateAddress="this.updateAddress" ></address-toast> 
// 父组件show方法
show(data){
console.log(date)
}
// data是传递过来的值
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Vue中,组件可以通过触发自定义事件来向父组件传递数据。 方法: 1. 组件内部通过 $emit 方法触发事件,同时传递数据。 ``` this.$emit('eventName', data) ``` 2. 组件通过 v-on 绑定事件监听器来接收组件传递的数据。 ``` <template> <child-component v-on:eventName="eventHandler"></child-component> </template> <script> export default { methods: { eventHandler (data) { // 在这里处理接收到的数据 } } } </script> ``` ### 回答2: 在Vue中,组件向父组件传递数据有几种方式: 1. 使用props属性:组件通过props属性将数据传递组件。在组件中,在组件的标签上添加属性,将需要传递的数据绑定到该属性上。在组件中,通过props属性接收该属性的值。在组件中修改该属性的值,可以通过.sync修饰符实现双向绑定。 2. 使用$emit方法:组件通过$emit方法向父组件触发一个自定义事件,并将需要传递的数据作为参数传递组件。在组件中,通过在组件上监听该自定义事件,并在回调函数中接收传递的数据。 3. 使用$refs属性:在组件中,通过在组件上定义ref属性,可以获取到组件的实例。通过直接访问组件实例的属性或调用其方法,可以实现数据的传递。 需要注意的是,当组件需要向不同的组件传递相同的数据时,可以使用provide和inject属性。在组件中通过provide属性提供数据,而在组件中通过inject属性注入数据。这样组件可以在不同的层级中传递数据给组件。然而,这种方式不太常用,一般情况下使用props、$emit或$refs即可实现组件向父组件传递数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值