React有三个东西,React JS 前端Web框架,React Native 移动终端Hybrid框架,React Web是一个源码转换工具(React Native 转 Web,并之所以特别提出,是觉得还有些用处)。

React、React Native共同特点

起源

Facebook 的内部项目

理念

Learn once, write anywhere,而不是Write once, run anywhere。简单说就是,让你在Web、Mobile原生的开发套路一样,但你还是需要写两套代码。Web Components的理解与实现。

开发工具

普通文本编辑器、Notepad++等即可

代码写法

支持ES6,组件化,看起来像NodeJS,所有代码是写在js里的,无论是样式还是模板。

组件化

易复用:组件的复用变得非常容易,它们都是独立的。

利解耦:使得组件的实现关注分离,利于解耦,更容易被理解和维护。

规范性:利用到ES6的模块加载和导出,使得代码简单就能按规范的写。也因为规范实现,使得Github上有的,就可以拿来用。

可组合:一个组件易于和其它组件一起使用,或者嵌套在另一个组件内部。如果一个组件内部创建了另一个组件,那么说父组件拥有(own)它创建的子组件,通过这个特性,一个复杂的UI可以拆分成多个简单的UI组件。

React

框架目的

基于组件化的开发,所以最终你的页面应该是由若干个小组件组成的大组件。

浏览器兼容

IE8+

运行方式

一般需要先一层编译,或者解析

PS:React JS我并没有用过,不过写法是React Native一样。

React Native

框架目的

用js开发出效果接近原生的Android、iOS应用。原因UI组件是原生实现原因,效果是相近原生的。(做得像原生,那就得用原生做)

PS:目前Saas Link里面的应用的效果在Android机器还是不大好

开发环境

iOS、Android按照官方文档搭建,大概1个小时。

开发调试

1. 能够在Chrome调试js,debug

2. 由于组件由原生渲染,不能调试View

代码风格

JSX 是一个看起来很像 XML 的 JavaScript 语法扩展。

组件生命周期

http://www.tuicool.com/articles/nu6zInB

提供植入原生应用

它很容易嵌入到一个并非由React Native开发的应用当中。作为应用的一部分。

React js的代码能不能直接转React Native?
ReactJs和React Native的原理是相同的,都是由js实现的虚拟dom来驱动界面view层渲染。

只不过ReactJs是驱动html dom渲染; React Native是驱动android/ios原生组件渲染。

真不能转~

真不能Write once, run anywhere?
淘宝前端团队(FED)把 React Native 的组件做了一个 Web 端的实现,并提供相关打包工具,让你可以直接打包出一份可以跑在 Web 端的代码。——React-Web

PS:http://www.jianshu.com/p/b5a91a503e6e

PS:我在本地尝试过,没跑起来,不过据说是可以的。

不过即便是能够转换,需要面对几个问题:

1. 这个转换的工具能否及时跟上React Native发展。

PS:要是这个团队不维护了或更新不及时(目前已经存在这种问题),这种依赖挺麻烦。

2. 存在转换不了的React Native原生功能,这部分还需要做兼容。

3. 没有完善的社区论坛,有问题解决不了。(目前只是在Github)

本文为原创文章,转载请保留原出处,方便溯源,如有错误地方,谢谢指正。

本文地址 :http://www.cnblogs.com/lovesong/p/5679734.html

小谈React、React Native、React Web的更多相关文章

  1. Taro 多端开发的正确姿势:打造三端统一的网易严选(小程序、H5、React Native)

    笔者所在的趣店 FED 早在去年 10 月份就已全面使用 Taro 框架开发小程序(当时版本为 1.1.0-beta.4),至今也上线了 2 个微信小程序.2 个支付宝小程序. 之所以选用 Taro, ...

  2. 什么是 Native、Web App、Hybrid、React Native 和 Weex?(转载)

    什么是 Native.Web App.Hybrid.React Native 和 Weex?   来源:zwwill_木羽 segmentfault.com/a/1190000011154120 一句 ...

  3. Hybrid APP基础篇(二)->Native、Hybrid、React Native、Web App方案的分析比较

    说明 Native.Hybrid.React.Web App方案的分析比较 目录 前言 参考来源 前置技术要求 楔子 几种APP开发模式 概述 Native App Web App Hybrid Ap ...

  4. 技术实践丨React Native 项目 Web 端同构

    摘要:尽管 React Native 已经进入开源的第 6 个年头,距离发布 1.0 版本依旧是遥遥无期."Learn once, write anywhere",完全不影响 Re ...

  5. React Native & react-native-web-player & React Native for Web

    React Native & react-native-web-player & React Native for Web https://github.com/dabbott/rea ...

  6. 使用 React.js 的渐进式 Web 应用程序:第 1 部分 - 介绍

      使用 React.js 的渐进式 Web 应用程序:第 1 部分 - 介绍 使用 React.js 的渐进式 Web 应用程序:第 1 部分 - 介绍 来自译者 markzhai:大家也知道最近 ...

  7. WHAT IS THE DIFFERENCE BETWEEN REACT.JS AND REACT NATIVE?

    Amit Ashwini - 09 SEPTEMBER 2017 React.js was developed by Facebook to address its need for a dynami ...

  8. React Native是一套使用 React 构建 Native app 的编程框架

    React Native是一套使用 React 构建 Native app 的编程框架 React Native at first sight what is React Native? 跟据官方的描 ...

  9. react native-调用react-native-fs插件时,如果数据的接口是需要验证信息的,在android上运行报错

    调用react-native-fs插件时,如果数据的接口是需要验证信息的,在android上运行报错,而在iOS上运行没问题.原因是因为接口是有验证信息的,而调用这个插件时没有传入,在iOS上会自动加 ...

随机推荐

  1. 简明 Git 命令速查表

    本文总结了git常用的命令,以便学习者使用时查阅~   几个专用名词的译名如下 Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote ...

  2. [OpenCV] Samples 08: edge

    Canny edge detector 效率高,效果可控. TrackBar的使用. 技巧:gray找边缘后作为mask去CopyTo(). #include "opencv2/core/u ...

  3. 机器学习&数据挖掘笔记_23(PGM练习七:CRF中参数的学习)

    前言: 本次实验主要任务是学习CRF模型的参数,实验例子和PGM练习3中的一样,用CRF模型来预测多张图片所组成的单词,我们知道在graph model的推理中,使用较多的是factor,而在grap ...

  4. Azure ARM (1) UI初探

    <Windows Azure Platform 系列文章目录> 在笔者之前的文章中,我们使用国内由世纪互联运维的Azure China,管理界面地址是:https://manage.win ...

  5. Visual Studio远程调试监视器(MSVSMON.EXE)的32位版本不能用于调试64位进程或64位转储

    在VS2013中调试Silverlight项目时,提示:无法附加.Visual Studio远程调试监视器(MSVSMON.EXE)的32位版本不能用于调试64位进程或64位转储.请改用64位版本. ...

  6. Elasticsearch——分词器对String的作用

    更多内容参考:Elasticsearch学习总结 关于String类型--分词与不分词 在Elasticsearch中String是最基本的数据类型,如果不是数字或者标准格式的日期等这种很明显的类型, ...

  7. CSS魔法堂:hasLayout原来是这样!

    前言 过去一直听说旧版本IE下很多诡异bug均由一个神秘角色引起的,那就是hasLayout.趁着最近突然发神经打算好好学习CSS,顺便解答多年来的疑惑. hasLayout到底是何方神圣? hasL ...

  8. openjudge7834:分成互质组 解析报告

    7834:分成互质组 总时间限制:  1000ms 内存限制:  65536kB 描述 给定n个正整数,将它们分组,使得每组中任意两个数互质.至少要分成多少个组? 输入 第一行是一个正整数n.1 &l ...

  9. 使用PhoneGap搭建一个山寨京东APP

    为什么要写一个App 首先解释下写出来的这个App,其实无任何功能,只是用HTML和CSS模仿JD移动端界面写的一个适配移动端的Web界面.本篇主要内容是介绍如何使用PhoneGap把开发出来的mob ...

  10. Auto Mapper01

         在项目中一直在使用Auto Mapper技术,但是只是会简单的使用,对其里面的一些具体的细节和知识点不是很清楚,现在就跟着我从最基础的知识点来重新认识下,AutoMapper技术吧.     ...