原创 從 generator 函數 到 redux -saga (五)

redux-saga 中的api 介紹 import { delay } from 'redux-saga'; import { all, call ,put, takeEvery ,fork,takeLatest ,apply,sele

原创 從 generator 函數 到 redux -saga (六)

同時執行多個任務 import { call } from 'redux-saga/effects' // effects 將會同步執行 const [users, repos] = yield [ call(fetch, '/u

原创 從 generator 函數 到 redux -saga (四)

fork 和 takeEvery  takeEvery 的作用是每次put 動作執行的的時候 都去調用worker  以下代碼可以直接在瀏覽器運行,執行步驟在代碼中做了註釋  <!DOCTYPE html> <html lang="en

原创 從 generator 函數 到 redux -saga(三)

take實現原理 <html> <head> </head> <body> <div id="test">qwe</div> <script> let $btn = document.getElementById

原创 從 generator 函數 到 redux -saga (二)

Thunk 函數的自動流程管理   JavaScript 語言的 Thunk 函數   JavaScript 語言是傳值調用,它的 Thunk 函數含義有所不同。在 JavaScript 語言中,Thunk 函數替換的不是表達式,而是多參

原创 從 generator 函數 到 redux -saga (一)

Generator 函數是 ES6 提供的一種異步編程解決方案 教程可查看 阮老師所著es6   用例1,對象轉可執行的數組 var myIterable = {}; myIterable[Symbol.iterator] = fun

原创 web應用性能優化之 nginx + compression-webpack-plugin

當我們的項目越來越龐大是時候  會發現 即使做了code split  代碼壓縮  動態加載 等等一系列優化之後 頁面的響應速度依舊很慢 這個時候時候可以使用 compression-webpack-plugin 這個插件  new C

原创 typescript interface 與 type 聲明類型的區別

在 typescript 中, 我們定義類型有兩種方式: 接口(interface) 和類型別名(type alias) 在官方文檔中我們可以看到: Unlike an interface declaration, which alway

原创 redux componse 函數中的反向職責鏈模式的演變

最初的實現方式   核心是 reduceRight 方法 把前一個執行結果 作爲下一個的參數執行   function add1(str){ return str+1; } function add2(str){ return st

原创 react 虛擬dom 淺析

react 虛擬dom 淺析 虛擬dom 的概念 隨着 react vue 等框架的普及 在前端圈一度成爲一個熱議的話題 爭論點在於 虛擬dom 真的可以提高 操作dom的性能麼 與傳統的jq 相比 性能到底有多大提升 於是

原创 webpack tapable庫中的同步異步鉤子

Webpack本質上是一種事件流的機制,它的工作流程就是將各個插件串聯起來,實現這一切的核心就是Tapable, webpack中最核心的負責編譯的Compiler和負責創建bundle的Compilation都是Tapable的實例 c

原创 關於js的 鏈式調用和流程控制 (sleep)

實現下面的函數:            new Test("test").firstSleep(3).sleep(5).eat("dinner") //等待3秒 //test //等待5秒 //dinner 鏈式調用沒什麼可說的 re

原创 寫一個模塊按需加載的babel插件 解決項目全量引入第三方資源的問題

babel 簡單的理解他是一個語法轉換器  Babel 的三個主要處理步驟分別是: 解析(parse),轉換(transform),生成(generate) Babel 項目是作爲一個 monorepo 來進行管理的,它由無數 npm 包

原创 寫一個 符合 promise A+ 規範的 構造函數 MyPromise

promise A+規範 promise 是js 異步發展至今的一個時代的產物  js的異步 經過如下歷程,  事件監聽  回調函數  訂閱發佈  promise 是一個時下異步 的一個解決方案   其核心設計思想主要概括爲以下幾點 1:

原创 es6 class 跟普通function的區別

es5 中的function 可以用call apply bind 的方式 來改變他的執行上下文    但是class 卻不可以   class 雖然本質上也是一個函數  但是 其內(babel)部做了一層代理 來禁止了這種行爲 限制該