原创 從 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)部做了一層代理 來禁止了這種行爲 限制該