vue2组件传值(边界处理)

13 篇文章 0 订阅
2 篇文章 0 订阅

父传子

        

  • 自定义属性 完成数据向下传递 props => 单向数据流

  • 父组件
    <child 属性>

    子组件
    props的定义两个方案 array | object
    数组方式,只是定义组件给自己所用,组件充当局部ui功能  
    调用  this.属性,在模板中直接{{属性}}  
    props:[属性]

    对象方式,一般定义组件给更多的人去使用,如组件库

  • props:{
      属性:{
            type:Number。。。
        default:默认值
        required:true/false
      }
    } 

    子传父

  • 自定义事件 子组件中抛发一个事件 this.$emit(事件名,数据),在父组件中实现对应的事件

         在子组件中通过自定义事件完成对于父组件通知  this.$emit(事件名,数据)
         父组件在子组件标签中绑定自定义事件,才能完成对应的数据通信  @事件名="方法"

     事件总线

         在项目中,组件之间的关系,可以比较的复杂

    事件总线(eventBus) => 发布 和 订阅

         先在需要接受组件中订阅对应 频道

         在对于发布的组件中在去对应的频道中发布 数据

        

const bus = new Vue()
bus.$emit(频道名,数据)
bus.$on(频道名,(...args)=>{})
bus.off(频道名)

        Ref  

  • 作用于普通的html中,它返回对应的dom对象

  • 作用于自定义组件中,返回对应组件的实例

  • - `this.$nextTick(()=>{})`
    - 获取ref对应的值 `this.$refs.xxxx`

    parent/children/root

  • this.$root 获取根组件 new Vue()

  • this.$parent 获取当前组件父组件

  • this.$children 获取当前组件的子组件集合

      provide/inject

         专门给封装组件库所用的通信机制

         使用此方案通信的组件,必须是一个组件下派生的

         在祖先组件中发布 provide:Object|()=>({})

         在其子孙组件是注入 inject:[名称]

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值