運(yùn)行rn代碼的過(guò)程中瀑志,不小心關(guān)閉了終端:
不用擔(dān)心,其實(shí)只要你切到項(xiàng)目的根目錄污秆,命令行輸入npm start
即可劈猪,這樣即可開(kāi)發(fā)終端監(jiān)聽(tīng)。實(shí)際上也是node.js的監(jiān)聽(tīng)服務(wù)開(kāi)啟而已良拼。在該目錄下可以找到rn的所有的參數(shù)屬性等等:
flex屬性聲明在:/node_modules/react-native/Libraries/StyleSheet/LayoutPropTypes.js如何運(yùn)行官方Demo呢
這里是reactnative的官方demo地址,要想運(yùn)行這個(gè)demo一定要嚴(yán)格按照官方文檔來(lái)战得,否則會(huì)走彎路(像我一樣,哈哈)将饺,如果點(diǎn)擊的是download zip贡避,那么你就會(huì)遇到一系列錯(cuò)誤:運(yùn)行出來(lái)的程序出現(xiàn)紅屏痛黎。蛋疼的要死,執(zhí)行了npm start
也不管用刮吧,所以還是老老實(shí)實(shí)的用git clone下來(lái)然后再打開(kāi)運(yùn)行就沒(méi)有問(wèn)題了湖饱。
- webStorm 在mac下的真對(duì)react-native的比較實(shí)用的快捷鍵分享
快捷鍵 | 執(zhí)行 |
---|---|
cmd + d | 在下一行復(fù)制當(dāng)前行 |
command + b / 點(diǎn)擊 | 定位方法 |
command + option +L | 代碼格式化 |
command + e | 打開(kāi)最近打開(kāi)的文件或者項(xiàng)目 (直接支持文件名搜索) |
command + / | 注釋/取消注釋 |
command + shift + / | 注釋/取消注釋 |
control + tab | 切換上次打開(kāi)的文件 |
command + shift + f | 全局搜索內(nèi)容 |
command + f | 當(dāng)前頁(yè)搜索 |
command + shift + o | 搜索文件 |
command + shift + v | 選擇粘貼剪切板上的內(nèi)容 |
command + 退格鍵 | 刪除當(dāng)前鼠標(biāo)所在行 |
command + option + 左右箭頭 | 定位到上次編輯的位置 |
command + option + 上下箭頭 | 依次順序輪換激活打開(kāi)的標(biāo)簽頁(yè) |
command + j | 輸出模板 |
command + b | 跳到變量聲明處 |
F2 或Fn+F2 | 高亮錯(cuò)誤或警告快速定位 |
在哪里搜索第三方庫(kù)和第三方插件
地址:JS.coach或者github,一般是由JavaScript編寫(xiě)的一般都是支持iOS和Android的。react-native init時(shí)卡住腫么辦
我個(gè)人建議多等一會(huì)應(yīng)該就可以了杀捻,但是等了很久都不可以的話(huà)
譯注:由于眾所周知的網(wǎng)絡(luò)原因井厌,react-native命令行從npm官方源拖代碼時(shí)會(huì)遇上麻煩。請(qǐng)將npm倉(cāng)庫(kù)源替換為國(guó)內(nèi)鏡像:
npm config set registry https://registry.npm.taobao.org
npm config set disturl https://npm.taobao.org/dist```
另致讥,執(zhí)行init時(shí)切記不要在前面加上sudo(否則新項(xiàng)目的目錄所有者會(huì)變?yōu)閞oot而不是當(dāng)前用戶(hù)仅仆,導(dǎo)致一系列權(quán)限問(wèn)題,請(qǐng)使用chown修復(fù))垢袱。 又墓拜,react-native.cn中文網(wǎng)提供了完整的綠色純凈新項(xiàng)目包。完整打包全部iOS和Android的第三方依賴(lài)请契,只要環(huán)境配置正確咳榜,無(wú)需科學(xué)上網(wǎng)漫長(zhǎng)等待,解壓后即可直接運(yùn)行爽锥。
* 不要重復(fù)創(chuàng)建工程
一般情況下涌韩,init一個(gè)HelloWorld工程一出來(lái)看下工程包的大小,200M+氯夷,是不是感到很無(wú)奈臣樱,針對(duì)初學(xué)者沒(méi)創(chuàng)建一個(gè)demo,就要init一個(gè)工程這簡(jiǎn)直太low腮考,最少要考慮一下你電腦硬盤(pán)的感受啊雇毫,有的人會(huì)注釋掉之前寫(xiě)的代碼,但是一個(gè)文件里注釋的不注釋的一大推看起來(lái)十分的凌亂踩蔚,我的建議是大家在相同的目錄下創(chuàng)建一個(gè)幾乎同名的js文件嘴拢,例如`index2.ios.js`,復(fù)制原版的`index.ios.js`也可以,然后打開(kāi)Appdelegate.m文件寂纪,修改為你新文件的目錄就可以了,例如:
ES6: jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index2.ios" fallbackResource:nil];
ES5: jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index2.ios.bundle?platform=ios&dev=true"];
這樣你就可以在新文件里面編輯或者測(cè)試的新代碼了赌结,而不用重復(fù)的創(chuàng)建工程捞蛋。
* 根據(jù)package.json恢復(fù)node_modules
npm install ```
在引用第三方庫(kù)的時(shí)候盡量加上--save
這一步中--save或--save-dev參數(shù)是非常重要的。rnpm需要根據(jù)package.json文件中的dependencies和devDependencies記錄來(lái)鏈接庫(kù)柬姚。
例:npm install xxx --save
- 是不是感覺(jué)state和props有些類(lèi)似拟杉?
一般區(qū)分兩個(gè)的原則是,可變的放在state中量承,不可變的放在props中搬设⊙ǖ辏
初始化
es5
class *** extends React.Component{ getInitialState: function() { return {liked: false}; }}```
es6
class *** extends React.Component{ constructor(props) { super(props); this.state = {liked: false}; }}```
修改值es5和es6中使用方法相同。this.setState(新的state對(duì)象);
讀取值其實(shí)就是讀取一個(gè)js對(duì)象拿穴。
在RN中是沒(méi)有button的泣洞,但是有類(lèi)似的組件,而且在RN中默色,連Text都有onPress事件(也就是點(diǎn)擊事件)這是跟很多語(yǔ)言不一樣的地方球凰。
~/.bashrc
export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh
webstorm 雙擊shift鍵,就會(huì)出現(xiàn)search anywhere腿宰,這個(gè)是我無(wú)意間瞎按按出來(lái)的呕诉,大家可以多嘗試,學(xué)習(xí)新語(yǔ)言就是填坑的過(guò)程吃度,不要怕遇到問(wèn)題甩挫,解決問(wèn)題的過(guò)程就是學(xué)習(xí)的過(guò)程。
webstorm -> preferences-> File and CodeTemplates 設(shè)置創(chuàng)建工程初始化文件
Command `run-ios` unrecognized. Did you mean to run this inside a react-native project?```
解決方法
`Have you installed the latest version of react-native-cli globally?`
npm uninstall -g react-native-cli
npm install -g react-native-cli
npm install --save react-native@latest