ReactNative小技巧

1.使用Navigator做到任意位置都可以跳轉(zhuǎn)使用

將Navigator轉(zhuǎn)為全局的

<Navigator ref={nav => global.nav = nav} ... />

參考: 新手理解Navigator的教程

2.Navigator在應(yīng)用中是一個(gè)還是多個(gè)?

Navigator是覆蓋整個(gè)頁(yè)面的大容器昭躺,這個(gè)容器只用在根頁(yè)面創(chuàng)建一次了赌,然后每次一整頁(yè)一整頁(yè)的push

3.Navigator定制每個(gè)界面的入場(chǎng)動(dòng)畫

configureScene(route) { 
    return route.animationType || Navigator.SceneConfigs.FloatFromRight; 
}

4.Redux不能修改原有的state數(shù)據(jù)

Redux中傳入到reducer中的state數(shù)據(jù)是不能做任何修改的,必須復(fù)制修改
state中的數(shù)據(jù)XX對(duì)應(yīng)的this.props.XX貌嫡,而修改后的數(shù)據(jù)對(duì)應(yīng)的componentWillReceiveProps(nextProps)中的nextProps.XX

const initialState = {
    testPoint: 200
};

修改state數(shù)據(jù)

case types.INCREMENT:
    {
        state.testPoint = 50
        return {
            ...state,
        };
    }

結(jié)果

this.props.testPoint = 50
nextProps.testPoint = 50

不修改state數(shù)據(jù)

case types.INCREMENT:
    {
        return {
            ...state,
            testPoint: 50
        };
    }

結(jié)果

this.props.testPoint = 200
nextProps.testPoint = 50

5 Redux修改數(shù)據(jù)引起的重新刷新

以下測(cè)試都是基于redux的store + 全局state基礎(chǔ)之上

實(shí)驗(yàn)條件 重新渲染 核心邏輯
直接返回原有的state ? {return state}
直接修改原有的state,重新賦予原值,并返回原有state ? {state.val = state.val return state}
直接修改原有的state,并返回原有state ? {state.val -= 1 return state}
返回state副本 ?? {return {...state} }
返回state的任何副本并修改 ?? null
重新渲染:所有的child組件默認(rèn)都重新渲染 ?? null
重新渲染優(yōu)化:判斷數(shù)據(jù)是否更改來(lái)判斷是否需要重新渲染 ?? null
  • 只要返回原有的state,無(wú)論原有的state是否修改過(guò),都不會(huì)再次引起刷新
  • 所有基于state副本的修改,都會(huì)引起刷新缕粹,重新渲染界面
  • 所有的child都會(huì)重新渲染
  • 第一次渲染不會(huì)進(jìn)入componentWillReceiveProps函數(shù)
  • 為了效率 shouldComponentUpdate(nextProps, nextState)可以避免重復(fù)渲染數(shù)據(jù),可用來(lái)優(yōu)化
shouldComponentUpdate(nextProps, nextState) {
    if (nextProps.data === this.props.data) return false
    return true
}

6. Object.assign和...展開(kāi)操作符都是淺拷貝

let obj = {
    name: 'kkk',
    age: 18,
    sun: {
        sname: 'tt',
        sage: 20,
    }
}

let t1 = obj
let t2 = {...obj}

console.log(t1 === obj)     // true
console.log(t1 == obj)      // true

console.log(t1 === t2)      // false
console.log(t1 == t2)       // false

console.log(t1.sun === t2.sun)      // true
console.log(t1.sun == t2.sun)       // true

// 結(jié)論 ...展開(kāi)操作符和Object.assign是一樣的淺拷貝,對(duì)象是引用的同一份
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末纸淮,一起剝皮案震驚了整個(gè)濱河市平斩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌咽块,老刑警劉巖绘面,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異侈沪,居然都是意外死亡揭璃,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門亭罪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)瘦馍,“玉大人,你說(shuō)我怎么就攤上這事应役】鄱眨” “怎么了哲银?”我有些...
    開(kāi)封第一講書人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)呻惕。 經(jīng)常有香客問(wèn)我荆责,道長(zhǎng),這世上最難降的妖魔是什么亚脆? 我笑而不...
    開(kāi)封第一講書人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任做院,我火速辦了婚禮,結(jié)果婚禮上濒持,老公的妹妹穿的比我還像新娘键耕。我一直安慰自己,他們只是感情好柑营,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布屈雄。 她就那樣靜靜地躺著,像睡著了一般官套。 火紅的嫁衣襯著肌膚如雪酒奶。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,763評(píng)論 1 307
  • 那天奶赔,我揣著相機(jī)與錄音惋嚎,去河邊找鬼。 笑死站刑,一個(gè)胖子當(dāng)著我的面吹牛另伍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播绞旅,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼摆尝,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了因悲?” 一聲冷哼從身側(cè)響起堕汞,我...
    開(kāi)封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎囤捻,沒(méi)想到半個(gè)月后臼朗,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蝎土,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年视哑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片誊涯。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡挡毅,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出暴构,到底是詐尸還是另有隱情跪呈,我是刑警寧澤段磨,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站耗绿,受9級(jí)特大地震影響苹支,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜误阻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一债蜜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧究反,春花似錦寻定、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至卦停,卻和暖如春向胡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背沫浆。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工捷枯, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留滚秩,地道東北人专执。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像郁油,于是被迫代替她去往敵國(guó)和親本股。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容