当前位置:  开发笔记 > 编程语言 > 正文

什么是"本机"以及React Native项目中没有的内容?

如何解决《什么是"本机"以及ReactNative项目中没有的内容?》经验,为你挑选了1个好方法。

我对React Native的工作方式仍感到很困惑.也许是因为我在移动开发方面没有相当不错的背景(虽然我尝试了原生Android一两次).

如果我没错,像Phonegap或Ionic这样的混合框架会在'WebView'中运行整个项目(或大部分项目),我错了吗?

而本机框架(如React Native)则意味着使用本机资源而不是纯粹的Web技术.

但是我们仍然编写Javascript,React Native可以很快完成工作,它可能仍在使用我们刚写的Javascript(我的意思是,它不是解析,转换为本机代码并重新编译).

我想到的问题是,什么是本机资源以及React Native项目中没有的内容?如果没有在'webview'中,我们编写的Javascript在哪里运行?有些本机库可以为两个平台创建Javascript到Objective-C和Java的接口吗?在Web解决方案中,它只是将整个代码注入WebView?

额外的问题:我们可以将React Native视为混合框架,因为我们为许多不同的平台编写了一个代码,或者它不是正确的术语吗?



1> martinarroyo..:

如果我没错,像Phonegap或Ionic这样的混合框架会在'WebView'中运行整个项目(或大部分项目),我错了吗?

是.PhoneGap和Ionic使用PhoneGap(实际上是Cordova)作为框架的一部分,利用HTML,CSS和JavaScript来呈现UI.除此之外,唯一的连接(据我所知)是Cordova提供给设备的本机API的访问(例如,想想传感器).

而本机框架(如React Native)则意味着使用本机资源而不是纯粹的Web技术.

是的,RN的方法是使开发人员能够使用JavaScript和React框架,同时保留本机开发的好处(性能,感觉和外观等).

但是我们仍然编写Javascript,React Native可以很快完成工作,它可能仍在使用我们刚写的Javascript(我的意思是,它不是解析,转换为本机代码并重新编译).

在这里,我认为您的误解在于:您必须将React Native视为仍然依赖于iOS/Android/Windows本机API和JavaScript代码的本机应用程序之间的"桥梁".该桥授予对此类API的JS访问权限,并关注呈现UI和其他不同的本机方面,以及提供相反方向的数据(从Native到JS).JS代码从未被"转换"为Java或Swift/Obj-C.它的执行方式与编程方式相同.但是,您有可能要求RN使用JavaScript中的一些本机组件(例如,UILabel在iOS中实例化一个)).然后,库使用一些组件(如布局,视图,控件等)实现此方法,但仍然如上所述.

我想到的问题是,什么是本机资源以及React Native项目中没有的内容?

所以...基本上,用JavaScript编写的任何东西都不是原生的,但通过它的执行,你会获得原生组件.您使用本机API直接编程的任何内容(这是RN的优势之一,如果您对此感到满意或者某个本机组件未在库中实现,您仍然可以本地开发)可以被视为"本机".

如果没有在'webview'中,我们编写的Javascript在哪里运行?有些本机库可以为两个平台创建Javascript到Objective-C和Java的接口吗?

如前所述,React Native JS和Objective-C之间的接口.JavaScript不会在任何时候在WebView中呈现.

在Web解决方案中,它只是将整个代码注入WebView?

React Native不适用于网络...除非你使用它.

额外的问题:我们可以将React Native视为混合框架,因为我们为许多不同的平台编写了一个代码,或者它不是正确的术语吗?

嗯......我说混合框架是一种结合了不同开发资源(比如Web技术和本机API)的工具.在这种情况下,React Native将属于该类别.我之所以称之为混合,只是因为它适用于多个平台(我只是称之为多平台).

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有