速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

Angular 2 搭配 React Native

  • 2016-04-25
  • 本文字数:1253 字

    阅读完需:约 4 分钟

Angular 2 的架构让它有可能使用多种渲染引擎来渲染应用,其中包括 React Native。

为 Angular 2 的基础架构做出的决定中有一个是将框架分为两个层级:一层是核心,其处理组件,指令,过滤器,服务,路由,修改检查,DI 和 I18n;另一层是渲染引擎,其处理 DOM,CSS,动画,模板,web 组件,自定义事件等等。核心可以在独立的进程中执行,这样就将其从界面中解耦出来,而且在核心有很多的任务要处理时,这样可以让界面的响应更快。关于这个决定的详细内容可以在 Angular 2 渲染架构文档中找到。

传统上渲染一个 Angular.JS 应用是通过 DOM 在浏览器中完成的,但是现在有可能通过其他的渲染引擎来渲染应用,包括桌面的或者移动端的原生渲染引擎,甚至还有服务器端。 Angular 2 渲染一文中更加仔细地解释了如何使用不同的渲染引擎来完成此工作。

从主应用中将渲染独立出来有多种益处。据Google 的工程师主管Brad Green 说,Angular 2 应用可以运行在Node.js 上,而且速度相当快。“你可以在此环境下运行Photoshop,所以为何不呢?”,Node.js 提供了文件系统,进程和硬件所需的入口。而且,Angular 2 可以通过 Angular Electron 运行在桌面上,或者在微软的UWP 上

在移动设备端,Angular 2 提供了一些选择项比如 Ionic 2 NativeScript 或者 React Native。对于最后一个,有个使得用React Native 渲染Angular 2 应用变得有可能。开发者可以调用所有React Native 提供的API 和polyfill 来使用iOS 和Android 的原生功能,然后回调可以按需在 Angular Zone 中执行。据 Marc Laval 所说,原生移动开发和 web 开发很类似,除了是使用不同的组件而不是 HTML 和 CSS 提供的那些:

  • 通用组件:Image,Picker,RefreshControl,ScrollView,Switch,Text,TextInput,View,WebView
  • Android 特定组件:DrawerLayout,PagerLayout,ProgressBar, Toolbar
  • iOS 特定组件:ActivityIndicator,DatePicker,MapView,Navigator,ProgressView,SegmentedControl,Slider,TabBar

应用风格是按照 React Native 的风格,手势是由 Hammer.js 处理的。Laval 在下图中详细说明了一个 React Native + Angular 2 应用的架构:

他解释说:

技术上来说,一个 React Native 应用运行了三个线程。主要的一个是 JS 线程,在这里所有的 JS 代码可以被执行;它控制了整个应用。其它两个线程运行着应用的原生的部分:标准主 UI 线程,和一个“shadow”线程用来测量和布局。

原生和 JS 这两块通过一个桥双向通信。这意味着有 Bridge JS API 来获取原生的功能特性(网络,地理位置,剪贴板等等)而且可以操作原生的元素,然后原生的事件被传回到 JS 模块。

在不久的将来,Angular 2 的团队计划创建一个新的动画模块,而 React Native 的团队打算在原生端获得更优的性能,而且 Facebook 会支持 UWP

查看英文原文 Combining Angular 2 with React Native


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-04-25 19:005098

评论

发布
暂无评论
发现更多内容

战略牵手OXY精英设计、朗生、MPE美亚,小度合作生态重构再迎重要时刻

新消费日报

出海 SaaS 企业增长修炼手册2:Kyligence 落地 PLG 是如何避坑的?

Kyligence

指标管理 SaaS 增长

唱衰PHP?这些言论别太离谱~《PHP综合现状分析报告》来了

禅道项目管理

php

Op丨ARB链dapp代币合约质押项目系统开发

l8l259l3365

HarmonyOS多音频播放并发政策及音频管理解析

HarmonyOS开发者

HarmonyOS

2023-10-25:用go语言,假如某公司目前推出了N个在售的金融产品(1<=N<=100) 对于张三,用ai表示他购买了ai(0<=ai<=10^4)份额的第i个产品(1<=i<=N) 现给出K(

福大大架构师每日一题

福大大架构师每日一题

得物 Redis 设计与实践

得物技术

redis 架构 运维

博睿动态|GOPS全球运维大会2023上海站即将开启!

博睿数据

可观测性

​交易所开发 PancakeSwap DeFi 成功的秘密:您的 DEX 发展蓝图

区块链软件开发推广运营

交易所开发 dapp开发 区块链开发 链游开发 NFT开发

关于数据库分片你需要知道的

遥遥知识库

Java 分布式数据库 后端 数据库分片 关于XX你应该知道的

Acrobat Pro DC 2023中文直装版 专业PDF编辑

iMac小白

Acrobat Pro DC 2023 Adobe Acrobat Pro DC下载 Adobe Acrobat Pro DC破解

TuGraph Analytics图建模研发:为图计算业务提速增效

TuGraphAnalytics

分布式 图计算 图平台 图研发 图运维

把握效率与最优性:Dijkstra算法的探索

高端章鱼哥

算法 计算机 Dijkstra

挑战吧,HarmonyOS应用开发工程师

HarmonyOS开发者

HarmonyOS

等保测评后还要花很多钱做等保整改吗?

行云管家

等保 等级保护 等保测评 等保2.0

揭示Lombok的代码设计缺陷:探索封装问题

树上有只程序猿

lombok Java 开发

焕新升级!新一代云原生可观测平台

华为云原生团队

云计算 容器 云原生 边缘计算

一站式 DB2 数据管理解决方案

NineData

sql 数据 客户端 db2 NineData

开箱即用!教你如何正确使用华为云编译构建服务CodeArts Build!

华为云PaaS服务小智

云计算 软件开发 华为云 编译构建

大模型在数据分析场景下的能力评测

Kyligence

数据分析 Kyligence Copilot

如何制作二维码会议签到系统?

草料二维码

Microsoft Remote Desktop for Mac 10.9.4中文版

iMac小白

microsoft remote desktop

协同发展,生态聚合丨1024程序员节暨「源聚一堂」开源技术沙龙(北京站)成功举办

开放原子开源基金会

如何为3D模型设置自发光材质?

3D建模设计

材质 纹理 贴图

一文了解企业云盘和大文件传输哪个更适合企业传输

镭速

大文件传输

1024 有奖征名|来给矩阵起源办公室的新猫取名字呀~

MatrixOrigin

1024 MatrixOrigin MatrixOne

如何确定Apache Kafka的大小和规模

互联网工科生

kafka

多款国产操作系统安装数据库干货文档汇总(含Oracle/MySQL/国产数据库等)

墨天轮

MySQL 数据库 oracle 国产操作系统 麒麟软件

1024程序员节|是时候,展示真正的实力了!

Openlab_cosmoplat

1024 1024程序员节

EndNote 21 for mac破解版 EndNote 21激活安装

iMac小白

EndNote 21下载 EndNote 21破解版 EndNote 21 mac

Angular 2搭配React Native_移动_Abel Avram_InfoQ精选文章