原创 js 深克隆實現

//整體想法 對基礎類型 函數類型 引用類型分情況處理,用weakMap處理循環引用的情況 const deepClone = (obj, distObj = {}, weakMap = new WeakMap()) => {

原创 react px自動轉rem,屏幕自適應

React項目 前提使用的 @craco/craco 做webpack配置 安裝 yarn add postcss-pxtorem@5 [email protected] 在 craco.config.js 配置文件里加如下代碼,如圖 (

原创 實現bind,不用apply 和call

Function.prototype.myBind = function (obj, ...param) { const uniqueName = Symbol(); obj[uniqueName] = this; retur

原创 node 寫sql的一個封裝

class MakeBaseSqlStr { constructor(envValue) { this.envValue = envValue; this.sqlStr = ""; } makePagingSql

原创 http緩存,普通對象緩存

這裏說的http緩存是指在前端同時發起很多api和參數都相同的get請求,特別是在map for 循環裏,一個組件被循環多次,它裏面的接口也會多次重複請求,那麼在短時間內多次發重複請求 肯定是性能不友好的,所以我做了一個緩存,代碼如下 /

原创 h5嵌入app後 一個好的調試方法

chrome://inspect/#devices 在google瀏覽器輸入,用安卓手機 usb鏈接電腦 開啓調試模式就可以 抓包 看html樣式

原创 Blob ArrayBuffer DataView 等的關係

重點參考下面的文章 圖片來自於下面的溫州南 https://blog.csdn.net/weixin_43294560/article/details/122216418

原创 超時緩存類

這個用來解決普通需要緩存的情況 const getHash = (str) => str; class CacheObj { constructor(time) { this.cacheTime = time * 1000;

原创 如何寫好一個公共組件

寫一個公共組件的思考 1.設計好 輸入參數 輸出參數 ; 2.設計好實現功能的各種狀態參數 3.定義好各個參數的默認值 默認行爲 4.寫好文檔 5.儘量減少外部依賴 入口處檢查參數的有效性,出口處檢查返回的正確性 總之就是告訴別人怎麼用

原创 js 觀察者模式

觀察者模式 解決1對多的關係,其中有一個比較難的思維點 就是 某人對某個事情敢興趣,不是自己一直盯着那個事情,而是發生那個事情的主人去通知對這個事情敢興趣的人。所以首先事情的主人就要收集搞清楚哪些人對這個事情敢興趣,當事情發生了 逐一通知他

原创 react-bug記錄

1.useState 與useReducer差異 const [filterBody, setFilterBody] = useState({}); const [pagination, dispatchPagination] = useR

原创 react 循環渲染 問題

1.循環渲染問題 a <Button onClick={fun()}> // fun函數會每次渲染都執行,如果fun裏面設置了狀態, // 就會永遠渲染 b. const ListPage = ({

原创 h5緩存處理方法

緩存的目的:保證每個頁面刷新後都能夠正常顯示,不是爲了做全局狀態共享 有些人錯誤的使用緩存去做全局狀態共享,這個是低效的。不過可以針對要緩存的信息,也可能是需要全局狀態共享的,這個時候要注意內存和緩存裏的信息保持一致。 例如token一般是

原创 es6裏的 new.target 的 作用

1.禁止一個構造函數通過非new的方式被調用;或者禁止一個非構造函數通過new的方式調用; 2.禁止生成子類實例;

原创 不常見bug記錄

1.vue 組件名稱 和引入的組件名稱重複 會導致循環渲染 超出內存 界面死掉 2.微信小程序 業務域名配置頂級域名,可以不用配置子集域名,如aa.bb.com,配置bb.com後,aa.bb.com,cc.bb.com,xx.bb.com