Vue组件通信_android组件间通信

Vue组件通信_android组件间通信Vue组件通信

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

Vue的组件之间是需要互相通信和传递数据的,这里演示几个常用的通信方式

父与子
  props方式

  props让组件接收外部传过来的数据

   传递数据<组件标签名 name=’***’ :传递参数名=’值’/> 这里传递参数名前加” : ” 从而可以动态绑定数据

   接收数据

       第一种方式(只接收) props:[‘参数名1′,’参数名2’,…….]

      第二种方式 (限制类型) props:{参数名1:参数类型,参数2:参数类型,……}

      第三种方式 (限制类型.限制必要性 指定默认值)

         props:{

                参数1:{

                   type:String(Number,Boolean,Object….) //参数类型

                   required:true, //参数必要性

                   default:’默认值’

     }

}        

注意: props是只读的,vue底层会监测对props的修改,如果进行了修改,就会发出警告 若业务需求确实需要修改那么请复制props的数据到data中,然后可以修改data中的数据

父子组件之间传递数据可以直接使用props方式进行传递,这种方式需要事先在父组件中定义好回调方法,然后在需要的时候让子组件调用就可以
父组件:

   Vue组件通信_android组件间通信

 Vue组件通信_android组件间通信

子组件:

自定义事件
还可以使用自定义事件的方式进行传参,这时不需要给子组件像props那样传参,子组件也不用接收

  适用于子组件====>父组件

   使用场景: 子组件想给父组件传数据 那么就要在父组件中给子组件绑定自定义事件(事件的回调在父组件中)

  绑定自定义事件

   a 第一种方式 在父组件中<Demo @事件名=’方法名’/>或<Demo v-on:事件名=’方法’/>

   b 第二种方式 在父组件中 this.$refs.demo.$on(‘事件名’,方法)  (此处的$refs.demo的demo是给子组件起的 ref=’demo’)

   c 若想让自定义事件只触发一次 可以使用once修饰符 或$once方法

   触发自定义事件this.$emit(‘事件名’,数据)

   解绑自定义事件this.$off(‘事件名’)

   组件上也可以绑定原生DOM事件 需要使用native修饰符 @click.native=”show”

   上面绑定自定义事件 即使绑定的是原生事件也会被认为是自定义的 需要加native 加了后就将此事件给组件的根元素

   注意: 通过 this.$refs.xxx.$on(‘事件名’,回调函数) 绑定自定义事件时 回调函数要么配置在methods中 要么使用箭头函数 否则 this指向会出现问题 

第一种写法
               Vue组件通信_android组件间通信

 Vue组件通信_android组件间通信

 

第二种写法,使用ref

Vue组件通信_android组件间通信

 

子组件中还是以$emit向父组件定义触发事件
父组件使用中定义子组件的ref属性进行获取
      

Vue组件通信_android组件间通信

 

注意: 若想让自定义事件只能触发一次 可以使用once修饰符 或$once方法

触发自定义事件: this.$emit(‘方法名或者事件名’,数据)
解绑自定义事件 this.$off(‘事件名’)
组件上也可以绑定原生Dom事件 需要使用native修饰符
通过this.$refs.xxx.$on(‘方法名’,回调) 绑定自定义事件时 回调要么配置在methods中 要么用箭头函数 否则this指向会出现问题

上述方法只适用于父子组件之间的传递,而不适合任意组件与任意组件之间的传递,比如兄弟组件之间的传递

## 任意组件之间的通信
**全局事件总线**
任意组件的通信vue中提供了全局事件总线来实现

一种可以在任意组件间通信的方式 本质上就是一个对象 必须满足以下条件\

    所有的组件都必须能看到它

   这个对象必须能够使用$on(绑定) $emit(触发) $off(解绑)方法去绑定 触发 和解绑事件

首先安装全局事件总线
       Vue组件通信_android组件间通信

 $bus就是当前应用的vmVue组件通信_android组件间通信

 Vue组件通信_android组件间通信

 Vue组件通信_android组件间通信

 

消息订阅与发布
我们除了vue提供的全局事件总线外,我们还可以使用一些第三方库来实现任意组件之间的通信
这里我们使用消息订阅与发布的pubsub-js这个库来实现(消息订阅与发布的第三方库有多种,此处只演示一种,不同库之间的语法也不同)

首先安装第三方库:

Vue组件通信_android组件间通信

 Vue组件通信_android组件间通信

 Vue组件通信_android组件间通信

 Vue组件通信_android组件间通信

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/200687.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 四足机器人|机器狗|仿生机器人|多足机器人|Adams仿真|Simulink仿真|基于CPG的四足机器人Simulink与Adams虚拟样机|源码可直接执行|绝对干货!需要资料及指导的可以联系我!

    四足机器人|机器狗|仿生机器人|多足机器人|Adams仿真|Simulink仿真|基于CPG的四足机器人Simulink与Adams虚拟样机|源码可直接执行|绝对干货!需要资料及指导的可以联系我!四足机器人、行走控制。附带源码及虚拟样机设计方案。针对目前仿生四足机器人控制中存在的稳定性低、控制精度不高、可控性差等问题,本文引入一种基于CPG(中央模式发生器)的步态控制算法模型,CPG生成的节律运动具有独立性与稳定性,还具有反馈调整功能,对波形调制处理后,能够实现仿生机器人的前进、后退、转弯、侧移、原地踏步等运动控制。针对仿生机器人研发周期长与成本高的问题,本课题利用Simulink与Adams构建虚拟样机对步态控制模型进行联合仿真验证。

    2022年5月2日
    65
  • pycharm安装2021_idea环境配置

    pycharm安装2021_idea环境配置环境配置这一篇是给新手朋友准备的,如果你本地已经安装配置,请自行跳过Python代码运行,需要解释器,Python解释器下载地址:https://www.python.org/鼠标悬停在Downloads上,然后选择对应的操作系统,点击版本号即可。我这里以Python3.9.2为例官网下载较慢,可以在公众号:Python极客专栏,后台回复【python392】获取安装包。下载完毕,双击打开(建议以管理员身份运行)。不建议按照默认的方式安装,参考下图点击之后出现如下界面Docu

    2022年8月29日
    5
  • 阿里巴巴主流数据库连接池Druid入门

    阿里巴巴主流数据库连接池Druid入门一.数据库连接池的必要性(一).传统数据库连接模式的的步骤1.在主程序中创建连接2.进行sql操作3.关闭数据库连接(二).传统数据库连接模式存在的问题1.浪费时间:每次连接时都要验证登录和将conn加载到内存,2.不能大规模的访问数据库:当数据库访问人数过多时,占用大量系统资源,会导致服务器崩溃3.存在内存泄漏问题:每次连接都需要断开连接,如果不断开,程序运行结束,会有创建的连接对象存在内存中一直无法关闭,就会导致java内存…

    2022年7月23日
    10
  • python调用自己写的py文件

    python调用自己写的py文件

    2021年5月17日
    197
  • HashMap 底层实现原理

    HashMap 底层实现原理要了解 HashMap 的底层实现原理 我们首先要对 HashMap 的部分底层源码进行分析 publicclassH K V extendsAbstr K V implementsMa K V Cloneable Serializable 我们可以看出 HashMap 继承了 AbstractMap 实现了 Map Cloneable Serializable 接口 staticfinali I K V K V K V

    2025年6月30日
    3
  • android线程通信的几种方式_java多线程的实现方式

    android线程通信的几种方式_java多线程的实现方式1,通过Handler机制.privatevoidone(){handler=newHandler(){@OverridepublicvoidhandleMessage(Messagemsg){super.handleMessage(msg);

    2022年10月7日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号