新年伊始,揪一揪2020的尾巴

翻了翻這些年寫過(guò)的博客础芍,點(diǎn)點(diǎn)滴滴就像日記一樣記錄著自己的成長(zhǎng)歷程。上次寫年終總結(jié)還是在2019年1月3日数尿,寫給2018......

2018仑性,是從Android轉(zhuǎn)做前端的一個(gè)開始。

從接手一個(gè)小的前端功能模塊右蹦,接觸到了項(xiàng)目腳手架的概念诊杆,基于此了解到ReactFusion組件庫(kù)何陆。最先接觸的dva當(dāng)中的connect晨汹、mapStateToPropsmapDispatchToProps 等等相關(guān)技術(shù)點(diǎn)是一臉蒙圈贷盲,只會(huì)照葫蘆瓢實(shí)現(xiàn)基本功能淘这,不敢有任何大膽的其他寫法。

漸漸就會(huì)對(duì)接觸到的任何技術(shù)點(diǎn)存留各種各樣的問(wèn)號(hào)巩剖,出于無(wú)盡的求知欲铝穷,就會(huì)知其然,也想知其所以然佳魔,一點(diǎn)點(diǎn)學(xué)習(xí)曙聂、積累、應(yīng)用鞠鲜,總結(jié)宁脊。反反復(fù)復(fù)。

Redux說(shuō)起

Redux贤姆,一種數(shù)據(jù)管理方式朦佩。它的思想和核心源碼都相對(duì)比較簡(jiǎn)單。一開始我有結(jié)合相關(guān)書籍和github源碼做過(guò)一次淺析《Redux》解讀庐氮。

Redux Flow

Redux中通過(guò)store.dispatch派發(fā)的action语稠,reducer立即算出 state,這叫做同步;action 發(fā)出以后仙畦,過(guò)一段時(shí)間再執(zhí)行 reducer输涕,這樣的異步改怎么樣實(shí)現(xiàn)呢?

這就不得不提及中間件慨畸,中間件其實(shí)就是一個(gè)函數(shù)莱坎,對(duì)store.dispatch方法進(jìn)行了改造,在發(fā)出 action 和執(zhí)行 reducer 這兩步之間寸士,添加了其他功能檐什。

我讀了兩篇文章,受益匪淺弱卡。《中間件middleware》《中間件和異步操作》
redux-thunk中間件乃正,改寫dispatch,使得他可以接收函數(shù)入?yún)ⅰ?br> redux-promise中間件婶博,改寫dispatch瓮具,使得它可以接收promise入?yún)ⅰ?/p>

但是這遠(yuǎn)遠(yuǎn)不夠,你發(fā)現(xiàn)React和Redux各自為伍凡人,如何讓兩位兄弟互幫互助名党,打工讓我掙錢,早日讓老板實(shí)現(xiàn)財(cái)富自由呢挠轴?react-redux`就這樣誕生了传睹。《 The History and Implementation of React-Redux 》幫你了解它的實(shí)現(xiàn)和歷史。

connect函數(shù)可以將Redux相關(guān)屬性和方法注入組件中岸晦,你可以通過(guò)分發(fā)actions注入數(shù)據(jù)和回調(diào)來(lái)改變數(shù)據(jù)蒋歌。

// connect() is a function that injects Redux-related props into your component.
// You can inject data and callbacks that change that data by dispatching actions.
function connect(mapStateToProps, mapDispatchToProps) {
  // It lets us inject component as the last step so people can use it as a decorator.
  // Generally you don't need to worry about it.
  return function (WrappedComponent) {
    // It returns a component
    return class extends React.Component {
      render() {
        return (
          // that renders your component
          <WrappedComponent
            {/* with its props  */}
            {...this.props}
            {/* and additional props calculated from Redux store */}
            {...mapStateToProps(store.getState(), this.props)}
            {...mapDispatchToProps(store.dispatch, this.props)}
          />
        )
      }
      
      componentDidMount() {
        // it remembers to subscribe to the store so it doesn't miss updates
        this.unsubscribe = store.subscribe(this.handleChange.bind(this))
      }
      
      componentWillUnmount() {
        // and unsubscribe later
        this.unsubscribe()
      }
    
      handleChange() {
        // and whenever the store state changes, it re-renders.
        this.forceUpdate()
      }
    }
  }
}


繼承和原型鏈

閱讀《JavaScript高級(jí)程序設(shè)計(jì)》,印象最深的是第六章——面向?qū)ο蟪绦蛟O(shè)計(jì)委煤。顛覆了之前類繼承的思維模式堂油,深入了解了函數(shù)原型,原型繼承的技術(shù)碧绞。再閱讀MDN《繼承和原型鏈》 加以鞏固府框。這個(gè)內(nèi)容很重要!很重要讥邻!很重要迫靖!

這里有我的《JavaScript高級(jí)程序設(shè)計(jì)》讀書筆記


函數(shù)

一句“函數(shù)是一等公民”,勾起了我對(duì)它的無(wú)盡想象兴使。
純函數(shù)的最佳實(shí)踐:redux中的reducer系宜;
高階函數(shù)最佳實(shí)踐:閉包,Arraymap发魄,reduce盹牧,filter俩垃,find,some汰寓,every......
閉包的最佳實(shí)踐:bind口柳、react-redux中的connectredux中間件

閉包

閉包一出有滑,求知欲也呼之欲出跃闹。

《JavaScript高級(jí)程序設(shè)計(jì)》:閉包是指有權(quán)訪問(wèn)另一個(gè)函數(shù)作用域中的變量的函數(shù)。
MDN:函數(shù)和對(duì)其周圍狀態(tài)(lexical environment毛好,詞法環(huán)境)的引用捆綁在一起構(gòu)成閉包(closure)望艺。

閉包的第一個(gè)用途是使我們?cè)诤瘮?shù)外部能夠訪問(wèn)到函數(shù)內(nèi)部的變量。通過(guò)使用閉包肌访,我們可以通過(guò)在外部調(diào)用閉包函數(shù)找默,從而在外部訪問(wèn)到函數(shù)內(nèi)部的變量,可以使用這種方法來(lái)創(chuàng)建私有變量场靴。

閉包的另一個(gè)用途是使已經(jīng)運(yùn)行結(jié)束的函數(shù)上下文中的變量對(duì)象繼續(xù)留在內(nèi)存中,因?yàn)殚]包函數(shù)保留了這個(gè)變量對(duì)象的引用港准,所以這個(gè)變量對(duì)象不會(huì)被回收旨剥。

作用域

當(dāng)你感覺(jué)充實(shí)的時(shí)候,作用域一詞是否曾經(jīng)波動(dòng)了你的心弦浅缸。

作用域和執(zhí)行環(huán)境是緊密聯(lián)系在一起的轨帜。當(dāng)代碼在一個(gè)環(huán)境中執(zhí)行時(shí),會(huì)創(chuàng)建變量對(duì)象的一個(gè)作用域鏈衩椒。作用域鏈的用途是蚌父,保證對(duì)執(zhí)行環(huán)境有權(quán)訪問(wèn)的變量和函數(shù)可以有序訪問(wèn)。如下圖毛萌,在控制臺(tái)就可以見(jiàn)到只聞其名不見(jiàn)其身的作用域

我有故事《理解JavaScript中的作用域》苟弛,你備酒。


學(xué)習(xí)了解XSS和CSRF阁将、防抖和節(jié)流膏秫、HTTP和HTTPS、TCP三次握手/四次揮手做盅、強(qiáng)緩存和協(xié)商緩存缤削、defer和async。

優(yōu)化是一個(gè)永恒的話題吹榴,首屏優(yōu)化亭敢、性能優(yōu)化、網(wǎng)絡(luò)優(yōu)化图筹、webpack優(yōu)化帅刀、react優(yōu)化。

曾經(jīng)我遇到一個(gè)面試題是,網(wǎng)頁(yè)輸入url劝篷,回車之后哨鸭,不聊發(fā)生了什么。只聊各個(gè)環(huán)節(jié)優(yōu)化的點(diǎn)和方法娇妓。

算法

工作了這么多年像鸡,算法其實(shí)都沒(méi)有真正的深入學(xué)習(xí)過(guò),只停留在冒泡排序終歸說(shuō)不過(guò)去哈恰。我開始跟隨labuladong的步伐進(jìn)行了第一輪的學(xué)習(xí)只估,在github上做了相關(guān)的實(shí)踐algorithm-javascript,同時(shí)在leetcode上刷了一些相關(guān)的題目着绷。

涉及到插入排序蛔钙、希爾排序、選擇排序荠医、堆排序吁脱、冒泡排序、快速排序彬向、歸并排序兼贡、二叉樹的深度優(yōu)先遍歷(前、中娃胆、后序遍歷)遍希、廣度優(yōu)先遍歷、二叉搜索樹

最后

寫了印象深的一些東西里烦,要去學(xué)習(xí)的有太多太多凿蒜,2021繼續(xù)加油!

要記得要去主動(dòng)參加一些面試胁黑,在這個(gè)過(guò)程中真正檢驗(yàn)?zāi)銓?duì)各方面知識(shí)點(diǎn)的掌握程度废封,去發(fā)現(xiàn)不足。

認(rèn)識(shí)自己很重要丧蘸!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末虱饿,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子触趴,更是在濱河造成了極大的恐慌氮发,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件冗懦,死亡現(xiàn)場(chǎng)離奇詭異爽冕,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)披蕉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門颈畸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)乌奇,“玉大人,你說(shuō)我怎么就攤上這事眯娱〗该纾” “怎么了?”我有些...
    開封第一講書人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵徙缴,是天一觀的道長(zhǎng)试伙。 經(jīng)常有香客問(wèn)我,道長(zhǎng)于样,這世上最難降的妖魔是什么疏叨? 我笑而不...
    開封第一講書人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮穿剖,結(jié)果婚禮上蚤蔓,老公的妹妹穿的比我還像新娘。我一直安慰自己糊余,他們只是感情好秀又,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著贬芥,像睡著了一般吐辙。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上誓军,一...
    開封第一講書人閱讀 49,792評(píng)論 1 290
  • 那天袱讹,我揣著相機(jī)與錄音疲扎,去河邊找鬼昵时。 笑死,一個(gè)胖子當(dāng)著我的面吹牛椒丧,可吹牛的內(nèi)容都是我干的壹甥。 我是一名探鬼主播,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼壶熏,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼句柠!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起棒假,我...
    開封第一講書人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤溯职,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后帽哑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谜酒,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年妻枕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了僻族。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片粘驰。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖述么,靈堂內(nèi)的尸體忽然破棺而出蝌数,到底是詐尸還是另有隱情,我是刑警寧澤度秘,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布顶伞,位于F島的核電站,受9級(jí)特大地震影響敷钾,放射性物質(zhì)發(fā)生泄漏枝哄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一阻荒、第九天 我趴在偏房一處隱蔽的房頂上張望挠锥。 院中可真熱鬧,春花似錦侨赡、人聲如沸蓖租。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蓖宦。三九已至,卻和暖如春油猫,著一層夾襖步出監(jiān)牢的瞬間稠茂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工情妖, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留睬关,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓毡证,卻偏偏與公主長(zhǎng)得像电爹,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子料睛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

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

  • 1.1丐箩、什么是HTML語(yǔ)義化?有什么好處恤煞? 根據(jù)內(nèi)容的結(jié)構(gòu)化(內(nèi)容語(yǔ)義化)屎勘,選擇合適的標(biāo)簽(代碼語(yǔ)義化)便于開發(fā)者...
    傾城一夢(mèng)1123閱讀 2,405評(píng)論 1 11
  • https://github.com/haizlin/fe-interview[https://github.co...
    Poppy11閱讀 400評(píng)論 0 0
  • 1、JS的數(shù)據(jù)類型只有浮點(diǎn)型居扒,沒(méi)有整型概漱。null,underfined,boolean,number,string...
    6e5e50574d74閱讀 2,186評(píng)論 2 1
  • CSS Flex彈性布局 容器的屬性:flex-direction: 決定主軸的方向 row行左從左到右、row-...
    程序員清歡閱讀 462評(píng)論 0 0
  • css相關(guān) 1. 萬(wàn)能居中 1.margin: 0 auto;水平 2.text-align: center;水平...
    chaocc閱讀 954評(píng)論 0 2