Vue 父子/子父传参

1.父子传参

//父组件
<template>
  <div>
    <!-- 引入子组件 -->
    <Test :name='data'/>
  </div>
</template>
<script>
  import Test from "./test.vue"
  export default {
    data() {
      return {
        data: [1,2,3,4,5]
      }
    },
  }
</script>

//子组件
<template>
  <div>
    <div>父子传参</div>
    <button v-for="(item,index) in name" :key="index">{{item}}</button>
  </div>
</template>
<script>
  export default {
    // 接受父组件传递的参数
    props:{name:{type:Array}},
  }
</script>

2.子父传参

// 父组件
<template>
  <div>
    <!-- 引入子组件 -->
    <Testcom @zdy_show="showdata"/>
  </div>
</template>
<script>
  export default {
    methods: {
      showdata(msg) {
        console.log(msg)
      }
    },
  }
</script>
// 子组件
<template>
  <div>
    <button @click="$emit('zdy_show',data)">子父传参</button>
  </div>
</template>
<script>
  export default {
    data() {
      return {
        data: [
          {name:'我是一只小鱼',age:22},
          {name:'我是二只小鱼',age:23},
          {name:'我是三只小鱼',age:24},
        ]
      }
    },
    mounted () {
      this.getFather()
    },
    methods:{
      getFather(){
        this.$emit('zdy_show',this.data)
      }
    }
  }
</script>
### Vue组件向父组件传递参数的方法 在 Vue 应用程序中,组件可以利用 `$emit` 方法触发自定义事件并向父组件发送数据。这种方式允许父子组件之间建立有效的单向数据流。 #### 使用 $emit 和 自定义事件 通过 `this.$emit('eventName', data)` 可以让组件发出一个带有载荷的数据事件给监听它的父级实例[^1]。 ```html <!-- 组件 ChildComponent.vue --> <template> <button @click="sendDataToParent">Send Data</button> </template> <script> export default { name: 'ChildComponent', methods: { sendDataToParent() { const message = "Hello from child!"; this.$emit("customEvent", message); } } } </script> ``` 父组件则需注册对应的处理函数用于接收来自组件的信息: ```html <!-- 父组件 ParentComponent.vue --> <template> <div class="parent"> <h2>Parent Component</h2> <!-- 注册名为 customEvent 的事件处理器 --> <child-component @customEvent="handleCustomEvent"></child-component> <p>{{ receivedMessage }}</p> </div> </template> <script> import ChildComponent from './ChildComponent.vue'; export default { components: { ChildComponent }, data() { return { receivedMessage: '' }; }, methods: { handleCustomEvent(message) { this.receivedMessage = message; } } }; </script> ``` 上述代码片段展示了完整的交互过程:当用户点击按钮时,组件会调用 `sendDataToParent()` 函数并通过 `$emit` 发送消息;而父组件已经绑定了相应的事件监听器 (`@customEvent`) 并指定了回调方法 `handleCustomEvent` 来更新自身的状态[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值