Vue组件之间如何传值

Vue父子组件之间如何传值

一、父传子组件参数传递
1)、在父组件的子组件标签中使用v-bind绑定一个属性,挂载绑定属性的变量
2)、在子组件中通过props来接收数据,props可以是数组也可以是对象,接收的数据可以直接使用,props:[‘属性名’], props:{属性名:数据类型}

//父组件
<template>
  <div>
      <h3>这是父组件内容区
      <Child :sendChild='parentValue' </Child>
      </h3>
 </div>
</template>`

<script>
import Child from './Child.vue'
export default {
  name: 'parent',
  data() { 
    return {
        parentValue:'--这是父组件的值100--',
    }
  },
  components:{
      Child
  },
 }
</script>
``

```html
//子组件
<template>
  <div>
        <h3 style="color:skyblue"> 父组件的数值为{{sendChild}}</h3>
        <!-- <button @click="clickEvent">点击给父组件传递参数</button> -->
 </div>
</template>

<script>
export default {
  name: 'Child',
  props:['sendChild'],
  data() { 
    return {
        childValue:'--这是子组件的值200--'
    }
  },
 }
</script>

在这里插入图片描述

二、子传父参数传递
1)在父组件的子组件标签上自定义一个事件,然后绑定所需方法
2)在子组件中的方法通过调用this.$emit(‘事件’,参数)来触发父组件中自定义事件,数据以参数的形式传递过去

//父组件
<template>
  <div>
      <h3>这是父组件内容区
      <Child @sendParentValue='receiveChildValue'></Child>
      <h2>这是子组件的值-----{{childValue}}</h2>
      </h3>
 </div>
</template>
<script>
import Child from './Child.vue'
export default {
  name: 'parent',
  data() { 
    return {
        parentValue:'--这是父组件的值100--',
        childValue:''
    }
  },
  components:{
      Child
  },
 }
</script>

//子组件
<template>
  <div>
<button @click="clickEvent">点击给父组件传递参数</button> 
 </div>
</template>

<script>
export default {
  name: 'Child',
  props:['sendChild'],
  data() { 
    return {
        childValue:'--这是子组件的值200--'
    }
  },
  components:{
  },
  methods:{
       clickEvent(){
this.$emit('sendParentValue',this.childValue)
       }
  },
 }
</script>

在这里插入图片描述

在这里插入图片描述

总结

无论父传子参数(props)还是子传父参数($emit),都需要在父组件中的子组件标签中绑定props对应父组件中的属性变量,或者绑定自定义事件,props方式在子组件中通过props(两种方式1、数组props:[‘属性名’],2、对象props:{属性名:数据类型})接收参数,并在子组件中引用。 e m i t 方 式 则 是 在 子 组 件 中 的 方 法 中 通 过 emit方式 则是在子组件中的方法中通过 emitemit(this.$emit(‘自定义事件’,子组件的数据))触发父组件中自定义事件,并将子组件的数据以参数的形式传递过去,在父组件中的自定义事件调用的方法中即可将子组件数据作为参数并使用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值