vue3中的父子组件传递信息和数据

1.父组件向子组件传递数据:

 在template中的子组件中,通过键值对方式传递user, 第一个user表示key,第二个表示setup中定义的对象,

子组件获取参数 ,通过props获取,并标识type属性表示获取类型Object,required表示父组件必须传递key为user的参数

子组件渲染参数,可以直接{{ }}渲染

2.子组件向父组件传递信息,无法直接传递,需要绑定事件通过context的emit方法实现传递,首先子组件绑定方法

然后setup中引入参数 props,context,注意虽然子传付用不到props,但必须写用来占位,不然获取不到context,所以必须写。

然后实现方法函数,在对应的点击方法中 context.emit 对应的父类绑定的方法名称

父类template中的子组件中要绑定对应上图emit中的方法,如下

然后在父类setup中定义好绑定的事件,如下

注意所有setup中非语法糖的方法和变量常量都需要return

3.子组件向父组件传递数据:

图中ref和v-model绑定了content的值,然后定义点击方法,也是通过context方法的emit实现和父组件的绑定方法实现传参,注意虽然子传付用不到props,但必须写用来占位,不然获取不到context,所以必须写。content需要 .value,表示传递的参数

父组件同样的方法首先在template的子组件中绑定emit中的方法

然后在setup中定义实现的方法

方法可以直接在()中接收参数

个人所学总结,希望有帮助,如有错误不足,感谢指正,

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue父子组件之间传递信息可以通过props和$emit事件来实现。 1. 组件组件传递信息: 在组件通过props将数据传递给组件组件通过props接收数据即可。 组件: ``` <template> <div> <child-component :message="message"></child-component> </div> </template> <script> import ChildComponent from './ChildComponent.vue' export default { components: { ChildComponent }, data() { return { message: 'Hello, child component!' } } } </script> ``` 组件: ``` <template> <div> {{ message }} </div> </template> <script> export default { props: { message: String } } </script> ``` 2. 组件组件传递信息: 在组件通过$emit事件触发组件的方法,将需要传递的数据作为参数传递即可。 组件: ``` <template> <div> <button @click="sendMessage">Send message to parent</button> </div> </template> <script> export default { methods: { sendMessage() { this.$emit('send-message', 'Hello, parent component!') } } } </script> ``` 组件: ``` <template> <div> <child-component @send-message="receiveMessage"></child-component> </div> </template> <script> import ChildComponent from './ChildComponent.vue' export default { components: { ChildComponent }, methods: { receiveMessage(message) { console.log(message) } } } </script> ``` 在组件通过$emit触发了send-message事件,组件通过@send-message监听到事件,并且将传递的数据作为参数传递给了receiveMessage方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值