原创 【數據結構與算法】遞歸轉棧

前言 以前學數據結構學的很盲目,特別是後面學遞歸dp感覺腦子完全不夠用,好像自己完全不是這塊料一樣。後來羣裏吹牛以及找各種資料發現能用遞歸的都可以用棧實現,遞歸本質是讓系統幫你維護個棧,而你不遞歸,那麼就自己手動維護棧,這樣就能

原创 【leetcode】718 最長重複子數組(滑動窗口解法)

前言 這是今日的每日一題,但是leetcode題解裏對滑動窗口的解法動圖之類有特別強烈的誤導性,導致一般很難寫出滑動窗口的解法。我自己研究之後,將他們錯誤的流程圖改編成正確的流程便於以後有類似需求可以想到。 原理 這個滑動窗

原创 【javascript】前端監控學習筆記(二)

前言 上一篇主要說了腳本錯誤捕獲,資源加載錯誤捕獲,和promise捕獲。本篇記錄下接口異常捕獲、白屏監測、加載時間、性能指標,卡頓指標,pv。 接口異常捕獲 原理 重寫xmlhttprequest的open和send方法,

原创 【linux】linux常用命令學習筆記(一)

前言 我現在感覺目前短板就是shell腳本那些,必須好好補一下。 記錄下常用操作備忘。 目錄規則 常見目錄 / 根目錄 /boot 啓動目錄,啓動相關文件 /dev 設備文件 /etc 配置文件 /home 普通用戶的家目錄

原创 【React】react源碼梳理筆記(一)

前言 該會的還是必須得會,千萬不能怕麻煩。一步步拆開總能到終點。 實現虛擬dom jsx語法都是通過babel轉譯完成。 首先是個普通的類組件: class App extends Component{ render(

原创 【React】FontAwesomeIcon按需引入TreeShaking攻略

前言 最近寫組件庫用了這玩意,但是實驗發現並不能treeShaking掉,於是來詳細探究下其中原因。 測試代碼 首先使用未按需引入的圖標進行實驗(按需引入是非默認導出+@fortawesome/free-solid-svg-

原创 【webpack】webpack構建流程筆記(四)

前言 上一篇loader沒完,這篇繼續。 Pitch順序 loader正常來說是倒着走的,但那只是正常的loader,其實loader分成2部分,一部分是Normal一部分是Pitch。 先配置3個loader,然後驗

原创 【webpack】webpack構建流程筆記(二)

前言 第一篇講了tapable,這篇記錄ast。 ast是成爲大神必會的,曾經我也是非常非常討厭學這個,畢竟感覺寫的沒啥成就感。不過這個熟練掌握之後可以寫很多插件之類,比如給你的組件寫個按需加載插件,所以還是得學!!! AST

原创 【React】用了connected-react-router一定要讓一個組件用withRouter或者Route包裹才能獲取路由方法?

前言 有個小夥伴發問:爲什麼一個組件要用withRouter包裹?不是使用了connected-react-router把路由信息存到store了嗎? 我仔細一想,覺得很有道理,其實確實可以不通過withRouter包裹獲取hi

原创 【工具配置】GitHub Packages的發包

前言 這個配了我半天,記錄下吧。 流程 首先,GitHub Packages只支持作用域包,所以一開始的包名需要改一下,叫@xxxx/yyyy。 最好先發佈下,看能不能發佈成功,如果發佈失敗,那就使用命令npm publis

原创 【React】警惕加入動畫導致因key產生的渲染錯誤

前言 我這次寫個多選框,多選框其實挺好寫的,但是如果要加入動畫效果,那就有點不太好搞了。做這個動畫,還犯了個key的錯誤,導致渲染錯誤,讓我想記錄下來。 多選框原理 先說下我的多選框原理,爲了後面讀者可以瞭解這個key的錯誤

原创 【javascript】前端監控學習筆記(一)

前言 監控不會,線上嗝屁,趕緊記錄下。 埋點方案 代碼埋點 嵌入代碼形式進行埋點,比如點擊事件,在點擊時插入一段代碼發給服務端,缺點工作量大。 可視化埋點 將業務代碼和埋點代碼分離,提供可視化交互頁面,在業務代碼中自定

原创 【React】防抖自定義hook,狸貓換太子

前言 我這也是看了別人學到的,一般我們防抖就寫個防抖函數然後一套就完事了,我看見的這個防抖hook思路清奇,玩了個狸貓換太子,讓我想記錄下來。 思路 比如輸入框要觸發個搜索查詢,那麼就搞個防抖,正常來說,我們把防抖函數套在原

原创 【React】手寫並封裝受控組件自定義hook表單驗證器(附組件庫線上體驗地址)

前言 有小夥伴說寫組件庫封裝表單沒有思路。我一開始感覺確實有點不太好寫,如果自己寫了自己用也就算了,做成封裝給別人用的那考慮東西就有點多。後來有人發了個react-hook-form的倉庫,我一看,這種利用自定義hook做驗證的

原创 【Typescript】探究爲什麼TS對EventTarget類型判斷的比較大?

前言 一般寫addEventListener,我們的listener都會收到一個事件對象,而這個事件對象的類型TS卻認爲是Event類型,而其target判斷爲EventTarget類型,給的類型比較大,往往都需要我們進行斷言,