React Native 環(huán)境搭建的教程
一直對 RN 充滿了好奇,前段時間學(xué)習(xí)并實際使用 RN 來開發(fā)了一個簡單的應(yīng)用。第一步從環(huán)境搭建開始。
環(huán)境搭建
分別需要安裝Node,Watchman,Yarn 和 RN 命令行工具,推薦把 react-devtools 的 debug 工具也一并安裝了
$ brew install node $ brew install watchman $ brew install yarn $ npm install -g react-native-cli $ npm install -g react-devtools // debug工具,可選
創(chuàng)建應(yīng)用
只要運行下面的命令就可以創(chuàng)建一個名為 AwesomeProject 的 RN 項目
react-native init AwesomeProject
也可以指定使用 RN 版本號,
react-native init AwesomeProject --version 0.47.0
該命令會創(chuàng)建一個 package.json 的文件,就是 npm 管理依賴的文件。這個文件中需要特別注意,在 dependencies 中申明的 react 和 RN 的版本一定要配對。有一次生成后的項目運行總是報錯,百思不得其解,最后才發(fā)現(xiàn)是版本不匹配造成的。只能默默修改版本號,然后運行 npm install 才得以解決
{ "name": "AwesomeProejct", "version": "1.0.0" "private": true, "scripts": { "start": "node node_module/react-native/local-cli/cli.js start" }, "dependencies": { // "react": "^15.6.1", // was installed by npm but not matched "react": "^16.0.0-alpha.12", // correct dependency version for react "react-native": "^0.47.0" } }
除了依賴管理文件以外,還有 ios 和 android 兩個目錄用來存放原生代碼,以及一些初始化的 JavaScript 文件模板,以后會用到,就不一一列舉了。
初次運行
初次運行是用來檢查環(huán)境是否正確的簡單的反饋,根據(jù)平臺運行下列命令
$ react-native run-ios or $ react-native run-android
Android 需要事先啟動模擬器或者連接真機,iOS 會自動啟動模擬器。如果看到下面這個界面,恭喜你已經(jīng)完成了環(huán)境的搭建,就可以開始應(yīng)用層的開發(fā)了。
RN First Launch
啟動過程
到此結(jié)束也是可以的,但是還有一個問題需要解釋一下,以便之后能夠快速進入 RN 應(yīng)用開發(fā)。如上節(jié)提到的啟動命令,可以分解成兩步。
步驟1. 啟動服務(wù)器
一個步驟是啟動開發(fā)服務(wù)器,它是用來提供運行所需的 JavaScript 文件的,當(dāng)然也可以用下面的命令單獨啟動
npm start
服務(wù)會占用本地的8081端口,如果該端口被占用,需要依次運行下面兩個命令來結(jié)束占用端口的進程
$ sudo lsof -i :8081 $ kill -9 <PID>
步驟2. 啟動移動端
另一個步驟就是編譯移動原生代碼并安裝運行,和平時開發(fā)原生移動應(yīng)用是一樣的。也可以到平臺各自的目錄下,ios或者android,用 IDE 打開并編譯運行。
啟動完成并看到上面的截圖的界面,就不用反復(fù)編譯和啟動移動端程序,每次代碼修改只需在模擬器中按提示刷新即可看到修改內(nèi)容。因為 RN 的主要的邏輯代碼在服務(wù)器端的 JavaScript 中,就是說每次刷新都會拉取服務(wù)器上的最新代碼并重新渲染用戶界面。
當(dāng)然,目前提到的整個過程僅指在開發(fā)階段,生產(chǎn)環(huán)境中可以更自由, JavaScript 文件的存放可以在服務(wù)器和客戶端之間進行選擇。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
React生命周期方法之componentDidMount的使用
這篇文章主要介紹了React生命周期方法之componentDidMount的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06解析TypeError:import_react_native.AppState.removeEventListener
這篇文章主要為大家介紹了TypeError:import_react_native.AppState.removeEventListener?is?not?a?function問題解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09基于React Context實現(xiàn)一個簡單的狀態(tài)管理的示例代碼
本文主要介紹了基于React Context實現(xiàn)一個簡單的狀態(tài)管理的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07react中將html字符串渲染到頁面的實現(xiàn)方式
這篇文章主要介紹了react中將html字符串渲染到頁面的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12