父子组件,兄弟组件间传值

本文介绍了Vue中父子组件通过ref和props进行数据传递,以及兄弟组件间通过emit进行通信的方法。特别提到了子组件向父组件传递值的两种方式:通过emit和props。
摘要由CSDN通过智能技术生成

父子组件,兄弟组件间传值

目标:

vue的父子组件间传值


内容:

两种方式

  1. 父组件通过子组件绑定ref调用子组件的方法改变子组件的内容,比如子组件页面刷新,数值改 变,样式改变等等操作
  2. 通过props 只传数据,改变某个数值,不能执行方法,刷新页面等等。

兄弟组件间传值:

父组件通过调用子组件传值
该案例也可以说是兄弟组件间如何传值。大致思路是,先将
父组件代码示例:
在这里插入图片描述
子组件2的代码示例:
这里写具体的子组件的具体实现的
在这里插入图片描述
还是上图中的子组件1通过 this. e m i t 传值给父组件,父组件在对应的子组件中通过 @ 绑定 t h i s . emit 传值给父组件,父组件在对应的子组件中 通过@ 绑定 this. emit传值给父组件,父组件在对应的子组件中通过@绑定this.emit中命名的名字,绑定父组件的方法
在这里插入图片描述


子组件向父组件传值:

方式一:

通过 this. e m i t 传值给父组件示例:子组件中 t h i s . emit 传值给父组件 示例: 子组件中 this. emit传值给父组件示例:子组件中this.emit(参数1,参数2); 参数1可以自主命名不限定,参数2为需要传过去的值
在这里插入图片描述

父组件中接收 @后面的名字和子组件中 this.$emit中的参数1名字需要保持一致。
在这里插入图片描述

在这里插入图片描述
方法的参数 code 是子组件中 this.$emit中的参数2


方式二:

.通过父组件给子组件传递的 props 实现:子组件给父组件传递数据
因为时间问题暂时不展示该方式,可自行查资料。后续补上~~~


父组件向子组件传值:

通过props

父组件

  <div>
   <!-- 我是子组件 -->
      <children :mesg="mesg" :content="content"></children>
</div>

在这里插入图片描述

子组件

<template>
    <div>
        <!-- 子组件内容 -->
        <div>{{mesg}}</div>
    </div>
</template>

<script>
export default {
    props: {
        mesg: String,
        content: String
  }
}
</script>

一般情况下。在props 定义了可以在子组件直接使用。
注释:在ts 曾经遇到过在子组件的方法中无法直接取到值的情况,通过 方法
const { mesg} = { …props }; 获取到父组件的内容。


记录学习上的点点滴滴
希望共同学习
一个人走的更快,一群人走的更远

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Vue 父子组件传值可以使用 props 和 emit 两种方式。 1. props:父组件通过 props 属性向子组件传递数据,子组件通过 props 来接收数据。具体而言,可以在子组件声明 props,然后在父组件使用 v-bind 来绑定数据。例如: ```html <!-- 父组件 --> <template> <child-component :message="parentMessage"></child-component> </template> <!-- 子组件 --> <template> <div>{{ message }}</div> </template> <script> export default { props: { message: String } } </script> ``` 2. emit:子组件通过 emit 方法向父组件发送事件,并传递数据。父组件可以通过 v-on 来监听子组件发送的事件,并接收数据。具体而言,可以在子组件使用 $emit 方法来发送事件,然后在父组件使用 v-on 来监听事件。例如: ```html <!-- 父组件 --> <template> <div> <child-component @my-event="handleChildEvent"></child-component> <p>{{ message }}</p> </div> </template> <script> export default { data() { return { message: '' } }, methods: { handleChildEvent(data) { this.message = data } } } </script> <!-- 子组件 --> <template> <button @click="handleClick">Click me</button> </template> <script> export default { methods: { handleClick() { this.$emit('my-event', 'hello from child') } } } </script> ``` 以上两种方式都可以用于父子组件传值,具体使用哪种方式,需要根据具体场景来选择。如果是单向数据流,建议使用 props;如果是需要在子组件触发事件,建议使用 emit。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值