原创 JavaScript (ES8/ES2017)新特性

前言 內容主要來自網絡,主要來自 MDN ES(JavaScript)是一門大家都要努力學習語言,也是一門努力不讓開發者精通的語言。 ES678 大部分功能能通過Polyfill或者Babel來解決。 也就是說ES5能

原创 JavaScript (ES7): async await

JavaScript ES7: async await 一、是什麼 async function定義一個返回 Promise對象的方法,內部可以配合 await 將異步代碼同步化的新特性。 二、爲什麼 異步編程的出現帶來了很多便利

原创 性能優化-頁面文件加載

前言 頁面阻塞加載JS,上來就是幹隨便放是要影響性能的。 解決方式 1、調整JS順序 將<script>標籤放到頁面底部</body>標籤之前,頁面渲染完再加載腳本 <!DOCTYPE html> <html lang="en">

原创 JavaScript(ES6): Promise 與異步編程

一、Promise 與異步編程 1.1 異步編程的背景知識 JavaScript的引擎是基於單線程的事件循環概念構建的。 1.1.1 事件模型 通俗來講,當用戶點擊某個Button,然後向任務隊列添加一個任務來相應操作。這個算是最

原创 JavaScript(ES7): Decorator(修飾器) 簡單入門

ES7 Decorator(修飾器) 簡單入門 前言 本文有引用阮一峯的例子,侵刪。 一、Decorator 是什麼 很多語言都有對應的Decorator(修飾器),用來修改原類/方法的功能。比如Java的Annotationy註

原创 前端開發的幾點經驗分享

前端開發的幾點經驗分享 前言 碼農日益增長的需求功能需要同落後的代碼實現之間的矛盾。 隨着軟件項目迭代,代碼的日積月累,維護成本變得越來越高。 同樣是實現功能,怎麼能寫出更有價值的代碼,應該是碼農要追求的道路。 本文由一個de

原创 React還能這麼玩(一)組件無render,只爲傳遞數據

React還能這麼玩(一)組件無render,只爲傳遞數據 前言 在翻開源的React組件源碼時經常看到一些用法很奇妙的,想着摘錄下來,跟大家討論下。 一、例子 參考rc-select,此處簡化代碼描述過程。 Select c

原创 React組件抽象(二):高階組件

React組件抽象(一):高階組件 前面介紹了組件抽象的方法:mixin。現在我們來介紹下另一種重要的高階組件(Higher-order Component),簡寫HOC。 一、高階組件是什麼,爲什麼要使用? 組件被包裹,返回一個

原创 React組件抽象(一): mixin

React組件抽象(一)-Mixin 寫業務組件的時候常常會有一些功能反覆被不同的組件公用,這時候就需要取出相同部分功能,這個過程涉及組件抽象。抽象方式有許多種,如高階組件(High-order components)和mixin

原创 JavaScript ES7: async await

JavaScript ES7: async await 一、是什麼 async function定義一個返回 Promise對象的方法,內部可以配合 await 將異步代碼同步化的新特性。 二、爲什麼 異步編程的出現帶來了很多便利

原创 JavaScript(ES6): yield的迭代器(Iterator)和生成器(Generator)

迭代器(Iterator)和生成器(Generator) 前言 最早知道迭代器是在學java的時候,那時候遍歷map只能使用迭代器。具體怎麼使用我現在忘得差不多了。其他語言應該大部分都有迭代器,甚至SQL也有cursor(遊標)。

原创 【GIT】修改GIT提交人記錄信息

前言: 場景: 公司內部有git賬號,以工號命名,個人賬號參與開源項目;提交開源項目的時候用戶名沒切換成個人賬戶,導致項目都是工號的提交記錄,違反了公司規定。 參考: stackoverflow:How to change the

原创 ES7-Decorator(修飾器) 簡單入門

ES7 Decorator(修飾器) 簡單入門 前言 本文有引用阮一峯的例子,侵刪。 一、Decorator 是什麼 很多語言都有對應的Decorator(修飾器),用來修改原類/方法的功能。比如Java的Annotationy註解也

原创 前端性能優化:節流與防抖

前言 有時候一些操作可能在短時間內執行多次,但是效果卻不是很明顯。比如監聽鍵盤Input的時候,敲中文的時候,中文還沒打出來已經發起請求n多次;滾動鼠標的時候也會觸發好多次,十分影響性能。所以需要加入“防抖”或者“節流”來優化。 參考

原创 跨域問題以及解決方案

跨域問題以及解決方案 一、什麼是跨域 因爲安全問題,非同源的網站發送請求數據,會被瀏覽器拒絕。 二、跨域的原因 就是跨域名,跨端口,跨協議。舉個例子: http://www.baidu.com/hello/world.html 請