【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

Reapp——使用 React 开发混搭移动应用

  • 2015-02-28
  • 本文字数:2044 字

    阅读完需:约 7 分钟

过去的两周时间里,围绕 Facebook发布 React Native(一个能够借助 JavaScript 开发原生移动应用的 React.js 扩展)的相关热点铺天盖地。而其中的热点之一就是 Reapp 向 React 爱好者们推出的一个移动应用开发的替代方案。

React 是一个构建用户界面的客户端 JavaScript 框架,由 Facebook 最初开发并开源。React 使用一个称为 JSX 的声明式语法和 JavaScript 语法扩展来描述 HTML 布局。每个 React 组件都通过属性和状态得以支持和配置,对它们的改变将通过单向数据流触发更新。这些更新是通过虚拟DOM 优化的,它区别对待不同的组件,确保只有状态变换导致的那些修改才得到刷新。

表面上,Reapp 与React Native 有着惊人的相似之处,二者都使用React 来创建应用程序用户界面的框架。然而,在底层机制上这两个框架之间却具有明显的哲学差异。React Native 将React 组件绑定到原生UI 控件中,构建与设备操作系统匹配的界面。而Reapp 却是将React 组件绑定到一个跨平台的UI-Kit 来创建混搭应用。

读者可通过该项目的 Kitchen Sink 样例应用来感受 Reapp UI-Kit 的表现力与强大。特别是该应用的“Mailbox”效果,它展示了基于 UI-Kit 的 Reapp 及其 React 如何用于快速定义邮箱风格的用户界面:

复制代码
var Mailbox = React.createClass({
render() {
return (
<div>
<SearchBar defaultValue="" />
<List styles={{
self: {
paddingLeft: 25
}
}}>
<ListItem
title="Erinn Silsby"
titleAfter="8:45 PM"
titleSub="New messages from Jane Doe really long title should ellipse"
>
Lorem ipsume dolor sit amet, consectetur adipiscing
elit. Nulla sagittis tellus ut turpis condimentium,
ursula major sagittis.
</ListItem>
<ListItem
title="Phebe Matz"
titleAfter="8:45 PM"
titleSub="New messages from Jane Doe really long title should ellipse"
>
Lorem ipsume dolor sit amet, consectetur adipiscing
elit. Nulla sagittis tellus ut turpis condimentium,
ursula major sagittis.
</ListItem>
<ListItem
title="Derek Boulware"
titleAfter="8:45 PM"
titleSub="New messages from Jane Doe really long title should ellipse"
>
Lorem ipsume dolor sit amet, consectetur adipiscing
elit. Nulla sagittis tellus ut turpis condimentium,
ursula major sagittis.
</ListItem>
<ListItem
title="Samantha Canor"
titleAfter="8:45 PM"
titleSub="New messages from Jane Doe really long title should ellipse"
>
// ... truncated for readability ...
// ... complete code sample available at https://github.com/reapp/kitchen-sink/blob/master/app/components/kitchen/Mailbox.jsx
</List>
</div>
);
}
});

上述代码片段举例说明了一个自定义邮箱组件如何通过三个 Reapp UI-Kit 组件——List、ListItem 以及 SearchBar——快速搭建而成。通过 Kitchen Sink 样例应用的在线版本可查看生成的用户界面。

然而 Reapp 并非只是一个带有 React 编程接口的 UI 工具套件,它还提供了其他处理非 UI 关注功能的组合包:

  • reapp-routes ——用来生成对象树的模块,这些对象代表路由或文件路径;
  • reapp-component——支持装饰模式和工厂模式的依赖注入模块;
  • reapp-ui——包含 UI-Kit;UI-Kit 是一整套 React 组件,通过主题支持动画和换肤,以允许平台特定风格。所有可用的 UI 组件都在 Reapp 站点列出

Reapp 的目标是通过合并大量主流 JavaScript 库来最大化开发者的生产效率。为了简化依赖管理,Reapp 包含了 Webpack 模块绑定器,其使用“代码拆分”来优化在运行时要加载的依赖。另外,Reapp 还捆绑了日益流行的 6To5 转译器,其允许开发者用 ES6 语法编写 JavaScript 代码,但转译成 ES5 语法,保持兼容性的同时最大限度提高开发效率。

Reapp 框架的 alpha 版本已提供使用,并可通过 npm安装。其同时是一个开源项目,源代码放在 GitHub 上。

随着该项目发布 alpha 版本,开发人员也发布了两个样例项目,以演示其功能和用法。Hacker News样例程序是一个功能完整的HackerNews 软件新闻网站客户端应用, Kitchen Sink 样例程序演示了 Reapp UI-Kit 的功能。这两个样例程序的源代码都可以通过 Reapp Github仓库获取。

查看英文原文: Reapp - Hybrid Mobile App Development Using React


感谢马国耀对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2015-02-28 08:246764

评论

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

编程界的新星 — Rust 凭什么被业界青睐(内附学习资源)

Greptime 格睿科技

rust 云原生 时序数据库 分布式时序数据库

如何进行带有透明压缩技术的SSD基准测试?

ScaleFlux

扩容 存储技术 压缩数据 固态硬盘 企业数据

多云管理的六大价值

穿过生命散发芬芳

多云管理 三周年连更

云服务规划技术

阿泽🧸

云服务 三周年连更

人脸识别:现代科技与隐私保护的博弈

来自四九城儿

开启云上高效开发新时代,华为云开发者日东莞站成功举办

华为云开发者联盟

云计算 华为云 华为云开发者联盟 企业号 4 月 PK 榜

从五一的旅游热潮看,该如何实现数字文旅的转型升级?

加入高科技仿生人

低代码 旅游业 数字赋能

苹果商店上架流程_App上架苹果流程及注意事项

雪奈椰子

什么是对象存储?对象存储的原理是什么?有哪些开源的、非开源的对象存储服务?

Java架构历程

对象存储 三周年连更

LoRA: 大语言模型个性化的最佳实践

Zilliz

Towhee 大语言模型

Go 方法接收器:选择值接收器还是指针接收器?

陈明勇

Go golang 方法 三周年连更 方法接收器

音视频八股文(8)-- h264 AnnexB

福大大架构师每日一题

音视频 ffmpeg 流媒体

ShareSDK 抖音平台注册指南

MobTech袤博科技

软件测试/测试开发丨Python装饰器常见报错信息、原因和解决方案

测试人

Python 软件测试 自动化测试 装饰器 测试开发

SBOM喊话医疗器械网络安全:别慌,我罩你!Part Ⅱ

安势信息

网络安全 SBOM 开源组件 医疗器械 医疗网安

大型水利投资集团,打造数智财资管理新范式

用友BIP

2023-04-28:将一个给定字符串 s 根据给定的行数 numRows 以从上往下、从左到右进行 Z 字形排列 比如输入字符串为 “PAYPALISHIRING“ 行数为 3 时,排列如下 P

福大大架构师每日一题

Go 算法 rust 福大大

2023阿里云合作伙伴大会-主论坛回顾

科技pai

阿里云 伙伴大会 2023阿里云合作伙伴大会

通过“群战”实现全民普惠,e签宝带来哪些思考?

ToB行业头条

连ChatGPT都不懂的五一调休,到底怎么来的?

禅道项目管理

程序员 GPT 调休

龙蜥社区 4 月度运营大事件回顾

OpenAnolis小助手

开源 运营 龙蜥社区 sig 月度回顾

程序员真的要失业了?新技术潮如何改变我们的职业生涯? | 社区征文

鹏哥AI数据

职业成长 ChatGPT 三周年征文

Bash 脚本中,特殊变量$0到底是什么?

wljslmz

bash Linux 三周年连更

算法题每日一练:螺旋矩阵 I

知心宝贝

数据结构 算法 前端 后端 三周年连更

好玩的策略游戏:群星Stellaris+DLC

真大的脸盆

Mac mac游戏 科幻策略游戏 游戏推荐 游戏安利

城市的智能进化,汇成数字中国的璀璨银河

脑极体

智慧城市

智能公厕设备升级方案@光明源智慧公厕

光明源智慧厕所

智慧城市

服务百万商家的系统,发布风险如何规避?微盟全链路灰度实践

TakinTalks稳定性社区

【民生证券】敏捷转型大步迈进!民生证券敏捷实践培训圆满结束!

嘉为蓝鲸

敏捷转型 民生证券

语义分割标注:从认知到实践

来自四九城儿

《流畅的Python》第二版上市了,值得入手么?

Python猫

Python

Reapp——使用React开发混搭移动应用_移动_Matt McComb_InfoQ精选文章