原创 前端炒雞好用的庫推薦 (歡迎補充交流)

一 時間處理 moment.js 是一個優秀的時間格式處理庫,但是庫本身體積比較大,沒有特定的需求,能夠用date.js 替代 date.js 推薦使用 二 js庫 rxjs 庫, 是一個優秀的observable 數據流 處理方案 l

原创 Cannot find module 'webpack-cli/bin/config-yargs

webpack5 : 啓動 webpack-dev-server 報錯 : “Cannot find module 'webpack-cli/bin/config-yargs” 分析原因 webpack,webpack-cli 以及 web

原创 TS7015: Element implicitly has an 'any' type because index expression is not of type 'number'

ts使用枚舉類型引用報錯 解決方案一:在對象接口中使用 keyof typeof 枚舉變量 enum color { b = 'black', w = 'white', g = 'gr

原创 js 創建私有變量

一 通過閉包存儲 let CPrivate = function(value){ let _private = value; return { getValue:()=> _private,

原创 報錯集錦及解決方案

一 TS2538: Type 'symbol' cannot be used as an index type. ts 中使用 let 定義 Symbol類型值時候會報改錯誤,將let 改爲const 即可。 解析:Symbol的值爲不可變

原创 字符串截取 slice,substr,substring 的區別

一 只傳遞一個參數時候 let str = '0123456'; str.slice(5); //'56' str.substr(5); // '56' str.substring(5); // '56' str.slice(-2);

原创 React.Component 和 React.PureComponent 、React.memo 的區別

一 結論 React.Component 是沒有做任何渲染優化的,但凡調用this.setState 就會執行render的刷新操作。 React.PureComponent 是繼承自Component,並且對重寫了shouldCompon

原创 git 撤銷push到遠程倉庫的無用commit

一 回退代碼 git reset <版本號> --soft // 軟回退 - 所有的commit修改都被撤銷了,且修改的代碼統一撤回到暫存區 git reset <版本號> --hard // 硬回退,也叫暴力回退 - 回退版本後的所有

原创 react中 受控組件和 非受控組件 淺析

受控組件,非受控組件 都是針對於 input,select,textarea 等表單元素的。 一 受控組件 顧名思義,受控 - 能夠被控制,簡而言之也就是 ,組件的value 通過外部state控制,並通過onChange改變外部state

原创 JSX 詳解

一 jsx 的本質是什麼? jsx是語法糖,需要被編譯成js才能運行。 jsx 看似是html 結構,實質是js結構的語法糖,在代碼編譯階段被編譯成js結構。所以jsx的本質可描述爲看似html結構的js結構。 jsx是獨立的標準,可被其他

原创 瀏覽器渲染邏輯和重繪、迴流解析

瀏覽器從輸入url 到 渲染出界面 中間經歷的過程 1 DNS 查詢 2 TCP 連接 3 HTTP 請求即響應 4 服務器響應 5 客戶端渲染 瀏覽器是如何渲染UI的?(客戶端的渲染) 1 瀏覽器接收到 html 和 css 文件 ,並對

原创 虛擬dom詳解

什麼是虛擬dom 顧名思義虛擬dom並非真實的dom,而是由按照一定的規則構成的可對真實dom進行描述的 JS對象。 結構如下 //虛擬dom { tag:'ul', attrs :{id:'list'},

原创 npm npx cnpm yarn 的區別

npm npm 是 Node.js 官方提供的包管理工具。用於 Node.js 包的發佈、傳播、依賴控制。npm 提供了命令行工具,使你可以方便地下載、安裝、升級、刪除包,也可以讓你作爲開發者發佈並維護包。 cnpm 淘寶團隊做的國內鏡像,

原创 virtual dom 詳解

vdom 是什麼 ? 爲何會存在vdom ? vdom如何使用,核心api是什麼? 介紹一下diff算法