亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

1.React Native起步和思考

2019-11-09 13:47:46
字體:
來源:轉載
供稿:網友

好久沒有寫博客,一直在用自己的印象筆記記錄一些問題。2017年了,想重新的把博客寫起來。也希望通過這個平臺交一些朋友。

環境配置

Homebrew:mac上的包管理??梢杂脕戆惭bnvm,watchman等等。nvm:Node Version Manager(Node.js的版本管理器),對電腦上多個不同node.js版本方便管理。watchman:用來監聽文件的修改。Facebook推薦。node:目前理解是一項服務器技術,還有主要是為了下面的npm(有待再次理解)。npm:管理javascript包。比如可以用來安裝react-native。react-native-cli:React Native的命令行工具。

具體的安裝就沒寫,官網以及很多文章都有講,安裝完以后就是下面這樣的。

Egos-MacBook-PRo:Users Egos$ react-native -versionreact-native-cli: 2.0.1react-native: n/a - not inside a React Native project directory

基本指令

介紹幾個需要基本掌握的指令,對于熟悉的同學就跳過了。

nvm list // 查看所有安裝的node版本信息。nvm alias default v7.4.0 // 設置默認的node版本(這里設置成了7.4.0),可能有些版本有些兼容性的問題。nvm ls-remote // 查看更新了的node的版本(可能需要翻墻)nvm install v7.4.0 // 安裝node // 全局安裝react-native命令行工具npm uninstall -g react-native-cli // 先卸載再安裝npm install -g react-native-cli // 可以用一些react-native命令,比如react-native --helpnpm info react-native // 查看某個模塊最新發布版本信息(這里查看react-native發布的版本信息)npm install --save react-native@0.41.1 // 升級或者降級react-native的版本并且更新package.json,需要用在react-native項目目錄下react-native --help // 查看react-native的幫助信息react-native start // 開啟服務react-native run-android // 運行Android

初體驗

主要說明一下每個文件代表的意思,Trinea大大的這篇的文章React Native 你該了解的 Hello World很詳細了。

react-native init HeloWorld // 初始化一個react-natvie項目,網絡原因可能導致比較的慢react-native run-android // 運行到Android手機。android/ios文件夾中存儲的是各自平臺的代碼。到這里以后是可以直接在Android Studio打開android包下面的android項目運行的。index.android.js和index.ios.js分別是Android和IOS的入口。理解為Java的main函數或者Android的LAUNCHER。__tests__ 測試文件夾。package.json,跟Node工程類似,用于描述項目的基本信息以及需要的依賴信息。node_modules文件夾,自動生成的文件夾,存放package.json中的。.watchmanconfig 為 watchman 的配置文件,watchman 用于監控文件變化,輔助實現工程修改所見即所得。.flowconfig 為 flow 的配置文件,flow 用于代碼靜態檢查。.buckconfig 為 buck 的配置文件,buck 是 Facebook 開源的高效編譯系統,對 Android iOS 同時適用,通過復用未修改的代碼單元、增量編譯等提高編譯效率。

運行流程分析

react-native run-android 以后到底是干了什么?

Egos-MacBook-Pro:HelloWorld Egos$ react-native run-androidJS server already running. // server啟動,會打開另外一個terimal窗口Running /Users/Egos/Library/Android/sdk/platform-tools/adb -s FA54AYJ05343 reverse tcp:8081 tcp:8081 // 反向代理8081端口Building and installing the app on the device (cd android && ./gradlew installDebug)... // android的gradle命令打包apk并且安裝apk// 執行完打包命令以后Starting the app on FA54AYJ05343 (/Users/Egos/Library/Android/sdk/platform-tools/adb -s FA54AYJ05343 shell am start -n com.helloworld/.MainActivity).. // 打開MainActivity// 現在另外一個terimal窗口transformed 388/388 (100%) // 將文件傳到手機上// 到此手機就展示出來了

更新React代碼以后重新reload的操作,可以看出是將代碼重新transforme到手機上。

<START> Updating existing bundle outdated_modules: 1<START> Transforming files<END> Transforming files (1ms)<END> Updating existing bundle (232ms) outdated_modules: 1Requesting bundle (256ms) bundle_url: /index.android.bundle?platform=android&dev=true&hot=false&minify=false

不更新代碼reload的操作。沒有transforme操作。

<START> Requesting bundle bundle_url:/index.android.bundle?platform=android&dev=true&hot=false&minify=falseRequesting bundle (16ms)bundle_url:/index.android.bundle?platform=android&dev=true&hot=false&minify=false

打包

沒有嘗試使用React Native自帶的打包,使用gradle打包。與普通項目的打包方式是一樣的,如果不知道的話,可以自行搜索解決。

signingConfigs { // 配置release variants打包內容 release { keyAlias signConfig.get('key.alias') keyPassWord signConfig.get('key.alias.password') storePassword signConfig.get('key.store.password') storeFile file(signConfig.get('key.store')) }}buildTypes { release { minifyEnabled enableProguardInReleaseBuilds proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" signingConfig signingConfigs.release // 配置打包release的時候使用signingConfigs中的release配置 }}

一些疑問

只支持com.android.tools.build:gradle:1.3.1?這個問題肯定是錯誤的。每次init一個項目的時候都是1.3.1,覺得很奇怪,是可以修改的。只能在命令行里面run?肯定不是??梢杂孟鄳腁ndroid Studio/Xcode打開android/ios的項目運行。反編譯得到的代碼不能看出來是不是正確的?反編譯一個React Native app以后看不到與運行出來內容相關的東西,那么react之類的代碼去哪了呢,目前這個問題還沒有代碼,知道的可以恢復下。^-^React Native和React Native Cli有什么區別?React Native Cli是為React Native提供命令行的一個腳本(這里的理解可能有一些出入)。比如run-android就會在里面封裝好,然后就可以react-native run-android了。包沖突,例如v4包?可以exclude掉。

還有一些問題,運行錯誤,錯誤不展示,怎么更改入口js的名字等等都可以自行搜索出來,可能我碰到的也不一樣。還有一些比如加速transforme的操作,自己還沒有去實踐。

體會

Learn once, write anywhere. 自己也在ios的模擬器上面跑了一下,也是很方便的。確實可以做到一份代碼就完成了android和ios兩個平臺開發。但是android和ios界面也是有很多不一樣的體驗,當然代碼也是可以做到在兩個平臺的ui分別展示不同的樣式。但對于一個已經比較完善的代碼直接改成React Native來說成本還是比較大的,目前看來可能會在已有的項目中集成React Native。

參考: Facebook官方資料 React Native: 配置和起步 React Native: Android 的打包


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美精品在线第一页| 伊人久久久久久久久久| 亚洲性日韩精品一区二区| 久久久久久久久久久免费精品| 91精品国产综合久久香蕉的用户体验| 精品亚洲国产成av人片传媒| 久久成人18免费网站| 日韩www在线| 国产999精品久久久| 日韩视频免费在线观看| 精品国产乱码久久久久久虫虫漫画| 国内精品美女av在线播放| 国语自产精品视频在线看抢先版图片| 久久精品99久久久久久久久| 久久影视电视剧免费网站| 日韩欧美成人区| 91中文字幕一区| 97在线精品视频| 国产欧美日韩中文| 久久久午夜视频| 国产精品嫩草视频| 狠狠躁夜夜躁人人躁婷婷91| 国产精品永久免费在线| 亚洲欧美日韩精品久久奇米色影视| 成人免费网站在线| 国产精品久久久久久久久久久久久久| 538国产精品一区二区免费视频| 国产区亚洲区欧美区| 在线不卡国产精品| 68精品国产免费久久久久久婷婷| 欧美亚洲在线播放| 亚洲美女激情视频| 大伊人狠狠躁夜夜躁av一区| 日韩欧美国产中文字幕| 欧美国产日韩视频| 91久久国产精品91久久性色| 国产精品自拍偷拍视频| 国产午夜精品免费一区二区三区| 欧美在线观看网址综合| 欧美综合在线观看| 国语自产精品视频在线看| 国产不卡一区二区在线播放| 精品国产户外野外| 久久国产精品亚洲| 欧美激情视频一区| 亚洲第一精品久久忘忧草社区| 国产精品久久久久久久久免费| 欧美性xxxxx极品| 色系列之999| 伊人伊成久久人综合网站| 91在线精品播放| 欧美一级bbbbb性bbbb喷潮片| 亚洲黄色有码视频| 亚洲图片在区色| 国产欧美韩国高清| 亚洲欧美激情另类校园| 日韩av电影在线网| 成人免费在线视频网站| 久久天天躁狠狠躁夜夜躁2014| 欧美性精品220| 欧美精品videosex牲欧美| 国产精品久久久久久久久久| 国产亚洲欧美日韩一区二区| 久久人人爽人人爽人人片av高清| 日韩视频在线免费观看| 日韩网站免费观看| 久久久久免费视频| 精品国产视频在线| 久久久久久噜噜噜久久久精品| 国产美女久久精品| 久久久久九九九九| 国产精品久久久久久中文字| 国产精品成人国产乱一区| 91在线免费观看网站| 日韩欧美主播在线| 九九视频直播综合网| 精品久久久久久久久久久久久| www.精品av.com| 久久精品国产96久久久香蕉| 亚洲图片制服诱惑| 国产成人av在线播放| 国产一区二区三区久久精品| 国产精品永久免费观看| 欧美又大粗又爽又黄大片视频| 精品视频久久久久久久| 欧美国产日韩一区二区| 这里只有精品视频在线| 欧美亚洲国产视频| 亚洲精品动漫久久久久| 欧美性xxxxxxxxx| 国产精品丝袜白浆摸在线| 欧美日本啪啪无遮挡网站| 美女啪啪无遮挡免费久久网站| 亚洲国产精品成人精品| 久久精品99久久久久久久久| 国产精品久久久久久久久| 欧美成人黄色小视频| 欧美影院久久久| 九九九久久久久久| 亚洲欧美精品suv| 亚洲国产中文字幕在线观看| 欧美孕妇毛茸茸xxxx| 精品亚洲国产成av人片传媒| 日本精品久久电影| 国产91精品青草社区| 91欧美精品成人综合在线观看| 国产国语刺激对白av不卡| 亚洲电影av在线| 国自在线精品视频| 在线看国产精品| 国产一区红桃视频| 亚洲无线码在线一区观看| 九九精品在线播放| 午夜精品国产精品大乳美女| 中文字幕欧美日韩| 亚洲成人网在线观看| 成人自拍性视频| 亚洲成年人影院在线| 成人欧美在线视频| 久久久免费电影| 日韩在线精品一区| 97超碰国产精品女人人人爽| 欧美黑人巨大精品一区二区| 日韩av网址在线观看| 亚洲成人免费在线视频| 国产精品丝袜视频| 国内精品美女av在线播放| 欧美在线观看日本一区| 91成人天堂久久成人| 久久久精品在线观看| 欧美激情va永久在线播放| 久久久久久久久久久人体| 欧美裸体xxxxx| 日韩在线观看免费高清| 最近2019年中文视频免费在线观看| 国产一区二区三区视频免费| 大胆欧美人体视频| 亚洲最大福利视频网| 亚洲香蕉在线观看| 韩日欧美一区二区| 亚洲最新中文字幕| 欧美成人精品激情在线观看| 国产精品99久久久久久久久| 色综合老司机第九色激情| 日韩精品视频在线观看免费| 久久亚洲综合国产精品99麻豆精品福利| 欧美性猛交xxxx| 亚洲国产日韩欧美在线图片| 国模精品一区二区三区色天香| 日韩av免费观影| 亚洲一区二区三区xxx视频| 日韩欧美精品中文字幕| 欧美成在线观看| 成人午夜一级二级三级| 国产精品久久久久久久7电影| 91精品视频在线播放| 成人美女免费网站视频| 日韩电视剧在线观看免费网站| 亚洲精品97久久| 欧美日韩国产精品专区| 91精品国产色综合久久不卡98口| 午夜精品www| 亲爱的老师9免费观看全集电视剧| 亚洲一区二区免费|