- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我对 React Native 的工作原理仍然很困惑。可能是因为我没有像样的移动开发背景(不过我已经尝试过一两次原生 Android)。
如果我没记错的话,像 Phonegap 或 Ionic 这样的混合框架将在“WebView”中运行整个项目(或大部分项目),我错了吗?
而 React Native 等原生框架旨在使用原生资源而不是纯网络技术。
但我们仍在编写 Javascript,而 React Native 完成这项工作的速度如此之快,以至于它可能仍在使用我们刚刚编写的 Javascript(我的意思是,它不是解析、转换为 native 代码并重新编译)。
我想到的问题是,什么是原生资源,什么不是 React Native 项目?如果不在“webview”中,我们编写的 Javascript 在哪里运行?有没有为两个平台创建 Javascript 到 Objective-C 和 Java 的接口(interface)的本地库?在 Web 解决方案中,它只是将整个代码注入(inject)到 WebView 中?
额外的问题:我们是否可以仅仅因为我们为许多不同的平台编写一个代码,或者它不是正确的术语,就认为 React Native 是一个混合框架?
最佳答案
If I'm not wrong, hybrid frameworks like Phonegap or Ionic will run the entire project (or most of it) in a 'WebView', am I wrong?
是的。 Phonegap 和 Ionic 使用 PhoneGap(实际上是 Cordova)作为框架的一部分,使用 HTML、CSS 和 JavaScript 来呈现 UI。除此之外的唯一连接(据我所知)是 Cordova 提供的对设备 native API 的访问(例如,想想传感器)。
Whereas native frameworks such as React Native is meant to use native resources instead of purely web technology.
是的,RN 的方法是让开发人员能够使用 JavaScript 和 React 框架,同时保留原生开发的优势(性能、感觉和外观等)。
But we still write Javascript, and React Native does the job so quickly that it is probably still using the Javascript we just wrote (I mean, it's not parsing, translating to native code and recompiling).
这就是我认为您的误解所在:您必须将 React Native 视为仍然依赖 iOS/Android/Windows 原生 API 的原生应用程序与一段 JavaScript 代码之间的“桥梁”。该桥授予 JS 访问此类 API 的权限,并关心渲染 UI 和其他不同的原生方面,以及提供相反方向的数据(从原生到 JS)。 JS 代码永远不会“转换”为 Java 或 Swift/Obj-C。它的执行方式与您对其编程的方式相同。但是,您可以要求 RN 使用来自 JavaScript 的一些 native 组件(例如,一个 <Text>
将在 iOS 中实例化一个 UILabel
)。然后,该库使用一些组件(如布局、 View 、控件等)来实现这种方法,但基本要素仍如描述的那样。
The question that comes to my mind is, what exactly is a native resource and what is not in a React Native project?
所以...基本上,任何用 JavaScript 编写的东西都不是原生的,但通过执行它,您可以获得原生组件。您直接使用 native API 编程的任何内容(这是 RN 的优势之一,如果您愿意,或者库中未实现某个 native 组件,您仍然可以进行 native 开发)都可以被视为“ native ”。
Where is the Javascript we write running if not in a 'webview'? There are native libraries that creates the interface of Javascript to Objective-C and Java for both platforms?
如前所述,React Native 是 JS 和 Objective-C 之间的接口(interface)。 JavaScript 不会在任何时候呈现在 WebView 中。
In a web-solution it simply injects the entire code in the WebView?
React Native 不适用于网络......除非你使用 this .
Extra question : can we consider React Native an hybrid framework just because we write one code for many different platforms, or it is not the correct terminology?
嗯...我想说混合框架是一种结合了不同开发资源(比如网络技术和 native API)的工具。在这种情况下,React Native 就属于这一类。我不会仅仅因为它在多个平台上工作(我会简单地称之为多平台)而将其称为混合。
关于javascript - 什么是 "native",什么不在 React Native 项目中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41813824/
问题是,当用户回复彼此的帖子时,我必须这样做: margin-left:40px; 对于 1 级深度 react margin-left:80px; 对于 2 层深等 但是我想让 react div
我试图弄清楚如何将 React Router 与 React VR 连接起来。 首先,我应该使用 react-router dom/native ?目前尚不清楚,因为 React VR 构建在 Rea
我是 React 或一般编码背景的新手。我不确定这些陈述之间有什么区别 import * as react from 'react' 和 import react from 'react' 提前致谢!
我正在使用最新的稳定版本的 react、react-native、react-test-renderer、react-dom。 然而,react-native 依赖于 react@16.0.0-alp
是否 react 原生 应用程序开发可以通过软件架构实现,例如 MVC、MVP、MVVM ? 谢谢你。 最佳答案 是的。 React Native 只是你提到的那些软件设计模式中的“V”。如果你考虑其
您好我正在尝试在我的导航器右按钮中绑定(bind)一个功能, 但它给出了错误。 这是我的代码: import React, { Component } from 'react'; import Ico
我使用react native创建了一个应用程序,我正在尝试生成apk。在http://facebook.github.io/react-native/docs/signed-apk-android.
1 [我尝试将分页的 z-index 更改为 0,但没有成功] 这是我的codesandbox的链接:请检查最后一个选择下拉列表,它位于分页后面。 https://codesandbox.io/s/j
我注意到 React 可以这样导入: import * as React from 'react'; ...或者像这样: import React from 'react'; 第一个导入 react
我是 react-native 的新手。我正在使用 React Native Paper 为所有屏幕提供主题。我也在使用 react 导航堆栈导航器和抽屉导航器。首先,对于导航,论文主题在导航组件中不
我有一个使用 Ignite CLI 创建的 React Native 应用程序.我正在尝试将 TabNavigator 与 React Navigation 结合使用,但我似乎无法弄清楚如何将数据从一
我正在尝试在我的 React 应用程序中进行快照测试。我已经在使用 react-testing-library 进行一般的单元测试。然而,对于快照测试,我在网上看到了不同的方法,要么使用 react-
我正在使用 react-native 构建跨平台 native 应用程序,并使用 react-navigation 在屏幕之间导航和使用 redux 管理导航状态。当我嵌套导航器时会出现问题。 例如,
由于分页和 React Native Navigation,我面临着一种复杂的问题。 单击具有类别列表的抽屉,它们都将转到屏幕 问题陈述: 当我随机点击类别时,一切正常。但是,在分页过程中遇到问题。假
这是我的抽屉导航: const DashboardStack = StackNavigator({ Dashboard: { screen: Dashboard
尝试构建 react-native android 应用程序但出现以下错误 info Running jetifier to migrate libraries to AndroidX. You ca
我目前正在一个应用程序中实现 React Router v.4,我也在其中使用 Webpack 进行捆绑。在我的 webpack 配置中,我将 React、ReactDOM 和 React-route
我正在使用 React.children 渲染一些带有 react router 的子路由(对于某个主路由下的所有子路由。 这对我来说一直很好,但是我之前正在解构传递给 children 的 Prop
当我运行 React 应用程序时,它显示 export 'React'(导入为 'React')在 'react' 中找不到。所有页面错误 see image here . 最佳答案 根据图像中的错误
当我使用这个例子在我的应用程序上实现 Image-slider 时,我遇到了这个错误。 import React,{Component} from 'react' import {View,T
我是一名优秀的程序员,十分优秀!