NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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:005002

评论

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

新书上市 |《谁在掷骰子?》在“不确定性时代”中确定前行

图灵教育

轮询和长轮询的区别

CRMEB

一文概述:VPN的基本模型及业务类型

穿过生命散发芬芳

vpn 7月月更

基于mysql的消息队列设计

Geek_e8bfe4

消息队列消息存储设计(架构实战营 模块八作业)

Gor

Web3.0:构建 NFT 市场(一)

devpoint

区块链 NFT 7月月更

OpenHarmony高校技术俱乐部计划发布

科技汇

消息队列存储消息数据的MySQL表格

Pengfei

内核对设备树的处理

贾献华

7月月更

如何设计高可用高性能中间件 - 作业

阿拉阿拉幽幽

数据中台建设(七):数据资产管理

Lansonli

数据中台 8月月更

数字化转型实践:世界级2B数字化营销的方法框架

雨果

数字化转型 DaaS数据即服务

面试突击69:TCP 可靠吗?为什么?

王磊

Java面试题

从RabbitMQ平滑迁移到RocketMQ技术实战

vivo互联网技术

RocketMQ RabbitMQ 消息队列 消息中间件 Apache RocketMQ

学习Java的网站

玄兴梦影

Java core

语音聊天app源码——语音聊天派对

开源直播系统源码

软件开发 直播系统源码 开源源码 语音聊天源码 一对一语音聊天系统

Prometheus 监控什么时候可以使用 PushGateway

耳东@Erdong

Prometheus PushGateway 7月月更

elasticsearch安装和使用ik分词器

程序员欣宸

Java Elastic Search 8月月更

重庆市大力实施智能建造,推动建筑业数字化转型,助力“建造强市”

科技热闻

mysql进阶(二十二)MySQL错误之Incorrect string value中文字符输入错误问题分析

No Silver Bullet

MySQL 特殊字符 8月月更

如何撰写出一篇优质的数码类好物推荐文

石头IT视角

一文带你了解 Grafana 最新开源项目 Mimir 的前世今生

Grafana 爱好者

Mimir Observability

【云驻共创】【HCSD大咖直播】亲授大厂面试秘诀

恒山其若陋兮

7月月更

设计消息队列存储消息数据的MySQL表格

Geek_7a789a

C#/VB.NET 将PPT或PPTX转换为图像

Geek_249eec

C# SVG PPT png VB.NET

表达式引擎在转转平台的实践

转转技术团队

表达式 引擎

大众碰到点评的一个字体反爬,落地技术也是绝了

梦想橡皮擦

Python 爬虫 8月月更

elasticsearch实战三部曲之三:搜索操作

程序员欣宸

Java elasticsearch 7月月更

JavaScript高级程序设计(第4版)-生成器

掘金安东尼

JavaScript 前端 7月月更

博弈论(Depu)与孙子兵法(42/100)

hackstoic

博弈论

开源一夏|基于ArkUI eTS开发的坚果食谱(NutRecipes)

坚果

开源 HarmonyOS OpenHarmony OpenHarmony应用开发 8月月更

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