美文网首页
组件间通讯方式

组件间通讯方式

作者: 一钱科技 | 来源:发表于2019-08-29 11:31 被阅读0次

  组件化,在工程组成结构角度讲,也可称为模块化。最终目的是为了解藕。
  本文总结了组件间交互方式及原理,不涉及到组件化具体实现。

语言分类

编译型语言、解释性语言
  • 编译型语言
    1. 只编译一次,把源代码生成机器语言,之后直接运行。
    2. 代表:C、C++
    3. 特点:执行效率高,跨平台型差
  • 解释型语言
    1. 不需要编译,每次运行时进行翻译
    2. 代表:JavaScript、Python、PHP、Perl、Ruby
    3. 特点:良好的平台兼容性,性能相对较低
  • 编译型+解释型
    1. 代表:Object-C、Java
    2. 原因:分为两步-编译和执行
      2.1 编译:将源代码编译为中间字节码
      2.2 执行:虚拟机将中间字节码翻译成机器码
动态语言、静态语言
  • 动态语言
    1. 概念:在程序运行时,可改变自身结构
    2. 代表:Object-C、C#、JavaScript、PHP、Python、Erlang
  • 静态语言
    1. 运行时,自身结构不可变
    2. 代表:Java、C、C++

通讯方式分类

大致分为四类:反射、RPC、URL Scheme、注册中心

反射

 反射机制,通过类字符串,动态创建对象。
例如:

NSString *name = @"ViewController";
Class cls = NSClassFromString(name);
UIViewController *vc = [[cls alloc] init
Class<?> clasz = Class.forName("com.example.Demo");
Object object = clasz.newInstance();
RPC

 各组件作为单独服务存在,通过远程调用进行通讯。
 代表:微服务、JavaScript

URL Scheme

 比较特殊方式,在移动端常用

[[UIApplication sharedApplication] openURL:[NSURL URLWithSting:@"***://***"]];
Uri data = Uri.parse("urlschemel://auth_activity");
Intent intent = new Intent(Intent.ACTION_VIEW,data);
startActivityForResult(intent, RESULT_OK);
注册中心

 在各个端最常用通讯方式。
 创建独立中间件,记录组件注册信息,达到组件间通讯目的。

  • 利用key值调用
    1. 较简单,只维护注册表。通过key值得到对应组件信息,动态创建。
    2. 代表:Android-ARouter
  • URL方式调用
    1. 较复杂,维护注册表和协议解析。优点是可根据不同协议,做定制处理。
    2. 代表:iOS-MGJRouter,SpringCloud-Eureka
Target-Action

  特殊的一种类型,根据动态语言定制方式。由runtime运行时动态创建对象。
 例如:iOS-CTMediator

相关文章

  • 组件间通讯方式

      组件化,在工程组成结构角度讲,也可称为模块化。最终目的是为了解藕。  本文总结了组件间交互方式及原理,不涉及到...

  • iOS-组件化-(跳转+传参数)

    iOS开发中组件化之业务组件间通讯方式之路由[https://www.jianshu.com/p/862564d4...

  • React项目组件间通讯方式简介

    一、父组件给子组件传递数据 props 二、子组件给父组件传递数据 通过函数调用的方式 三、兄弟组件传递数据 pu...

  • EventBus3.0 源码解析

    简介 我们知道,Android应用主要是由4大组件构成。当我们进行组件间通讯时,由于位于不同的组件,通信方式相对麻...

  • iOS 组件化

    组件化 组件化其实就是将模块单独抽离、分层,并指定模块间的通讯方式,从而实现解耦的一种方式,通过组件化把代码分割在...

  • angular4学习笔记整理(四)组件间通讯、管道

    之后的笔记就写的快一点 组件间通讯 1.组件间通讯 。父组件向子组件输入属性用 子组件声明接收父组件的属性@in...

  • ReactNative 组件间通讯

    参考文章参考 子组件传递参数到父组件 (回调) 在父组件中定义一个带参数的方法 price就是最后回调的参数。设置...

  • vue 组件间通讯

    总结起来三种方式 一、eventbus bus.js component1.vue component2.vue ...

  • Vue 组件间通讯

    最近回顾前端,先是 React 现在因工作需又要开始 vue 了。开发过程中多半时间我们需要结构,有层次有上下级,...

  • vue组件间通讯

    父子 $emit/on props $parent/children $attrs/listenner $ref ...

网友评论

      本文标题:组件间通讯方式

      本文链接:https://www.haomeiwen.com/subject/dsybectx.html