原创 在React項目中,如何優雅的優化長列表

  對於較長的列表,比如1000個數組的數據結構,如果想要同時渲染這1000個數據,生成相應的1000個原生dom,我們知道原生的dom元素是很複雜的,如果長列表通過生成如此多的dom元素來實現,很可能使網頁失去響應。   貫穿Re

原创 聊聊Typescript中的設計模式——裝飾器篇(decorators)

  隨着Typescript的普及,在KOA2和nestjs等nodejs框架中經常看到類似於java spring中註解的寫法。本文從裝飾模式出發,聊聊Typescipt中的裝飾器和註解。 什麼是裝飾者模式 Typescrip

原创 在單頁應用中,如何優雅的監聽url的變化

  單頁應用的原理從早起的根據url的hash變化,到根據H5的history的變化,實現無刷新條件下的頁面重新渲染。那麼在單頁應用中是如何監聽url的變化呢,本文將總結一下,如何在單頁頁面中優雅的監聽url的變化。 單頁應用原

原创 發佈一個react組件——react-read-pdf,用於在移動端展示PDF文件

PC端的瀏覽器對於PDF文件的展示沒有太大的問題,給定一個PDF的鏈接,就可以用瀏覽器默認的展示樣式來展示和渲染PDF文件的內容。比如一個"http://www.baidu.com/test/pdf"。 如何在移動端展示這個文件。爲

原创 響應式佈局的常用解決方案對比(媒體查詢、百分比、rem和vw/vh)

簡要介紹:前端開發中,靜態網頁通常需要適應不同分辨率的設備,常用的自適應解決方案包括媒體查詢、百分比、rem和vw/vh等。本文從px單位出發,分析了px在移動端佈局中的不足,接着介紹了幾種不同的自適應解決方案。 本文原文在我的gith

原创 React16.3中的Refs和Forwarding Refs

簡要介紹:React16.3中修改了Refs的使用方法,並且提供了Forwarding Refs用於在父組件中操作子組件中的dom節點,本文介紹一下新的Refs表示方法以及Forwarding Refs。 Ref的功能就不具體說了,就是在

原创 循序漸進教你實現一個完整的node的EventEmitter模塊

node的事件模塊只包含了一個類:EventEmitter。這個類在node的內置模塊和第三方模塊中大量使用。EventEmitter本質上是一個觀察者模式的實現,這種模式可以擴展node在多個進程或網絡中運行。本文從node的Even

原创 React16.x中的服務端渲染(SSR)

簡要介紹:爲了SEO和加快首屏加載速度,React提供了服務端渲染(Server Side Render)。本文結合express,來介紹一下React16.x中的SSR。 本例代碼:https://github.com/fortheal

原创 手把手教你實現json嵌套對象的範式化和反範式化

手把手教你實現json嵌套對象的範式化和反範式化 在json對象嵌套比較複雜的情況下,可以將複雜的嵌套對象轉化成範式化的數據。比如後端返回的json對象比較複雜,前端需要從複雜的json對象中提取數據然後呈現在頁面上,複雜的json嵌套

原创 RxJS入門——基礎操作指北

RxJS入門——基礎操作指北 本章所基於的RxJS的版本問5.5.9,在本章中介紹RxJS的基礎知識,比如Observable、Observer、Subscription、Subject以及Operation等 瞭解RxJS的設計思

原创 徹徹底底教會你使用Redux-saga(包含樣例代碼)

Redux-saga使用心得總結(包含樣例代碼), 本文的原文地址:原文地址 本文的樣例代碼地址:樣例代碼地址 ,歡迎star 最近將項目中redux的中間件,從redux-thunk替換成了redux-saga,做個筆記總結一下re

原创 通過Pure Render和Immutable實現React中的性能優化

簡要介紹:React中的render存在着不必要的渲染,可以通過Puer Render(PureComponent)來減少渲染的次數,但是Puer Render只是進行淺比較,無法實現深層對象上的性能優化。Pure Render結合Imm

原创 實現一個完美符合Promise/A+規範的Promise

簡要介紹:Promise允許我們通過鏈式調用的方式來解決“回調地獄”的問題,特別是在異步過程中,通過Promise可以保證代碼的整潔性和可讀性。本文主要解讀Promise/A+規範,並在此規範的基礎上,自己實現一個Promise. 一、P

原创 Webpack4.0初體驗

本文原文在我的github主頁中,如果喜歡,您的star是對我最好的鼓勵~ 簡要介紹:Webpack4.0.1版本已經發布了2周了,下面用體驗一下Webpack4.0 1 .安裝Webpack4.0 (1) Node.js 4 is no

原创 總結一下ES6中promise、generator和async/await中的錯誤處理

簡要介紹:ES6中爲了處理異步,增加了promise、generator和async,它們各自都有不同的內部錯誤處理方式,本文總結一下promise、generator和async的內部錯誤處理方法。 1 . Promise的錯誤處理方法