原创 Promise原理解析

寫在前面 本篇文章將會帶大家從分解promise入手,一步步實現一個promise。但閱讀之前需要比較熟練地瞭解瞭解用法,結合用法看文章可能更容易理解。 結構 先看一下簡單的用法。 const promise = new Prom

原创 理解前端自動化測試TDD + BDD

前言 在日常的開發中,整天趕需求的我們好像沒有時間顧及自動化測試,尤其是在敏捷開發的時候。但其實自動化測試可以幫助我們提高代碼和功能的健壯程度,大幅減少可能出現的bug。 尤其是在複雜系統中,自動化測試的作用不容忽視。本篇文章是我

原创 一個HTTP請求的曲折經歷

寫在前面 作爲程序員的我們每天都在和網絡請求打交道,而前端程序員接觸的最多的就是HTTP請求。平時工作中,處理網絡請求之類的操作是最多的了。但是一個請求從客戶端發出到被服務端處理、再回送響應,再被客戶端接收這一個閉環的底層細節可能

原创 數組的push、unshift、pop、shift方法實現

尾部添加(push) push() 方法將一個或多個元素添加到數組的末尾,並返回該數組的新長度。 從解釋中可以看出,push方法只要將要添加的元素依次放到數組的最後即可,不會改變原有數組元素的索引。所以循環參數列表,將新元素依次放

原创 競態請求的Redux中間件解決方案

這個問題來源於一次無意中在項目裏發現的bug,場景是組件會在切換項目後重新渲染,每次重渲染後,組件掛載完畢會請求對應的當前項目的數據,存到store中展示到頁面上。 但網絡請求時間的長短是難以預測的,這就引發了一個問題: 切換到B

原创 Promise的祕密

寫在前面 本篇文章將會帶大家從分解promise入手,一步步實現一個promise。但閱讀之前需要比較熟練地瞭解瞭解用法,結合用法看文章可能更容易理解。 結構 先看一下簡單的用法。 const promise = new Prom

原创 React組件設計模式-Provider-Consumer

React組件設計模式-組合組件 React組件設計模式-Render-props 我們都知道,基於props做組件的跨層級數據傳遞是非常困難並且麻煩的,中間層組件要爲了傳遞數據添加一些無用的props。 而React自身早已提供

原创 關於變量提升和函數提升的理解

變量提升:變量的聲明寫在可以在使用變量之後; 函數提升:函數可以先調用,後聲明; 上面先解釋了下我理解的這兩個概念的定義。要真正理解它們,最好從變量對象的角度出發。引出變量對象的概念,要先理解執行上下文,也就是當控制器執行到可執行

原创 React組件設計模式-Render-props

React組件設計模式-組合組件 React組件設計模式-Provider-Consumer 寫業務時,我們經常需要抽象一些使用頻率較高的邏輯,但是除了高階組件可以抽象邏輯,RenderProps也是一種比較好的方法。 Rende

原创 React組件設計模式-組合組件

React組件設計模式-Provider-Consumer React組件設計模式-Render-props 這種模式本質上解決的是組件之間傳值的問題。但是它對於傳值以及一些內部操控的邏輯封裝得更嚴密。 場景:希望減少上下級組件之

原创 今天,我明白了JS事件循環機制

寫在前面 js是一門單線程的編程語言,也就是說js在處理任務的時候,所有任務只能在一個線程上排隊被執行,那如果某一個任務耗時比較長呢?總不能等到它執行結束再去執行下一個。 所以在線程之內,又被分爲了兩個隊列: 同步任務隊列 異步

原创 函數的防抖和節流是個啥???

曾經面試時候被問到過這個,年少的我一臉無知。。。 後來工作中遇到了一個場景:輸入名稱的同時去服務器校驗名稱是否重複,但發現之前的代碼竟然都沒做限制,輸入一次發一次請求。簡直忍不了,就在項目的utils里加上了防抖函數。 正好做一個

原创 React 服務端渲染從入門到精通

前言 這篇文章是我自己在搭建個人網站的過程中,用到了服務端渲染,看了一些教程,踩了一些坑。想把這個過程分享出來。 我會盡力把每個步驟講明白,將我理解的全部講出來。 文中的示例代碼來自於這個倉庫,也是我正在搭建的個人網站,大家可以一

原创 簡單梳理Redux的源碼與運行機制

前言 前幾天寫了一篇react另一個狀態管理工具Unstated的源碼解析。 開啓了我的看源碼之路。想一想用了好長時間的redux,但從沒有深究過原理,遇到報錯更是懵逼,所以就啃了一遍它的源碼,寫了這篇文章, 分享我對於它的理解。

原创 理解 React 輕量狀態管理庫 Unstated

在React寫應用的時候,難免遇到跨組件通信的問題。現在已經有很多的解決方案。 React本身的Context Redux結合React-redux Mobx結合mobx-react React 的新的Context api本