由于 React 并没有做出关于你其他的技术堆栈的假设——通常在 MVC
中简单的用 V
来表示——这很容易嵌入到现有 non-React Native 应用程序中。事实上,它与另外的最佳实践社区工具集成了,如 CocoaPods。
成都创新互联公司是一家专业提供宜城企业网站建设,专注与网站设计、成都网站设计、成都h5网站建设、小程序制作等业务。10年已为宜城众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
CocoaPods - gem install cocoapods
Node.js - brew install node
CocoaPods 是 iOS/Mac 开发的管理工具包。我们需要用它来下载 React Native。如果你还没有安装 CocoaPods,请查看本教程。
当你准备使用 CocoaPods 工作时,添加以下行到 Podfile
中。如果你没有,那么在你的项目的根目录下创建它。
pod 'React' pod 'React/RCTText' # Add any subspecs you want to use in your project
记得安装所有你需要的 subspecs。没有 pod 'React/RCTText'
,
元素不能使用。
然后安装你的 pods:
$ pod install
有两块你需要设置:
根 JavaScript 文件,该文件将包含实际的 React Native 应用程序和其他组件
包装 Objective - C 代码,将加载脚本并创建一个 RCTRootView
来显示和管理你的 React Native 组件
首先,为你的应用程序的 React 代码创建一个目录,并创建一个简单的 index.ios.js
文件:
$ mkdir ReactComponent $ touch index.ios.js
为 index.ios.js
复制 & 粘贴以下 starter 代码——它是一个 barebones React Native 应用程序:
'use strict';var React = require('react-native');var { Text, View } = React;var styles = React.StyleSheet.create({ container: { flex: 1, backgroundColor: 'red' } });class SimpleApp extends React.Component { render() { return () } } React.AppRegistry.registerComponent('SimpleApp', () => SimpleApp); This is a simple application.
SimpleApp
将是你的模块名称,这将在后面使用。
现在,你应该为 React Native 组件添加一个容器视图。在你的应用程序中它可以是任何的 UIView
。
但是,为了使代码简洁,让我们把 UIView
归入子类。让我们把它命名为 ReactView
。打开你的Yourproject.xcworkspace
,并创建一个新类 ReactView
(你可以把它命名为任何你喜欢的名字:))。
// ReactView.h #import@interface ReactView : UIView @end
在一个视图控制器中,想要管理这一视图,继续添加一个出口并将其连接:
// ViewController.m @interface ViewController () @property (weak, nonatomic) IBOutlet ReactView *reactView; @end
在这里我简单的禁用了 AutoLayout。在实际产品中,你应该自己打开 AutoLayout,并且设置约束。
准备好学习最有趣的这部分了吗?现在我们将在你的 React Native 应用程序存在的位置创建 RCTRootView
。
在 ReactView.m
中,我们首先需要用 index.ios.bundle
的 URI 启动 RCTRootView
。index.ios.bundle
将被 packager 创建,并由 React Native 服务器服务,这将在稍后讨论。
NSURL *jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle"];// For production use, this `NSURL` could instead point to a pre-bundled file on disk://// NSURL *jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];//// To generate that file, run the curl command and add the output to your main Xcode build target://// curl http://localhost:8081/index.ios.bundle -o main.jsbundleRCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation moduleName: @"SimpleApp" launchOptions:nil];
然后把它作为 ReactView
的子视图添加。
[self addSubview:rootView]; rootView.frame = self.bounds;
在根目录,我们需要启动 React Native 开发服务器。
(JS_DIR=`pwd`/ReactComponent; cd Pods/React; npm run start -- --root $JS_DIR)
这个命令将在我们的 CocoaPods 依赖中启动一个 React Native 开发服务器,来创建捆绑脚本。——root
选项表明 React Native 应用程序的根——这将是我们包含单一 index.ios.js
文件的 ReactComponents
目录。该运行的服务器将通过 http:/ / localhost:8081 / index.ios.bundle
把 index.ios.bundle
打包成可访问的文件。
现在编译并运行你的应用程序。你将看到你的 React Native 应用程序在 ReactView
内部运行。
Live 也从模拟器重新加载工作!你已经得到了一个简单的完全封装在 Objective–C UIView
子类中的 React 组件。
所以,当 RCTRootView
初始化时,它会尝试从 React Native 开发服务器中下载,解析并运行包文件。这意味着你所需要做的就是为 RCTRootView
实现你自己的容器视图或视图控制器——RCTRootView
摄取了捆绑的 JS 并呈现出你的 React 组件。万岁!
你可以在这里查看一个示例应用程序的完整源代码。
本文名称:创新互联React教程:与现有的应用程序集成
文章转载:http://www.shufengxianlan.com/qtweb/news36/62836.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联