Vue组件通信/交互

本文介绍了在Vue中如何进行组件间的通信,包括父组件通过props向子组件传递数据,以及子组件通过$emit向父组件传递数据。同时阐述了Vue的单向数据流原则,强调了它在防止组件状态意外变更中的重要作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1)父组件传递数据给子组件

父组件使用prop属性,向子组件传参
   <div id="app">"
      <my-com :title="title" msg="hello"></my-com>
   </div>

子组件接受参数
   let component = {
      props: ['title','msg'],
   }

(2) 子组件向父组件传递数据

子组件向父组件传参

     <div id="app">"
        <my-com @son-handler="fatherHandler" msg="hello"></my-com>
      </div>

      let component = {
        data() {
          return {
            comMsg: '我是子组件数据'
          }
        },
        template:`
          <div>
            <button @click='clickHandler'>发送事件</button>
          </div>
        `,
        methods: {
          clickHandler() {
            this.$emit('son-handler', this.comMsg)
          }
        }
      }

      new Vue({
        el:'#app',
        data: {
          fatherDate: ''
        },
        methods: {
          fatherHandler(val) {
            // val就是子组件发送事件时,携带的参数this.comMsg
            this.fatherDate = val
          }
        },
        components: {
          myCom: component
        }
      })

(3)单向数据流(数据更改的方向)

父级的prop数据的更新,会向下流动到子组件中,反过来不行
父组件能够修改子组件中的数据,而子组件不能直接修改父组件中的数据
作用:防止子组件意外变更状态,会影响父组件中的状态或者数据  


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值