原创 創建型設計模式-封裝和對象(工廠模式,建造者模式,單例模式)

要點: 定義變量不會污染外部 能夠作爲一個模塊調用 遵循開閉原則 什麼是好的封裝: 變量外部不可見 調用接口使用 留出擴展接口   封裝對象時的設計模式 工廠模式 目的:方便我們大量創建對象(大量多個) 應用場景:當某一個對象

原创 理解JavaScript、node.js中的發佈和訂閱模式以及運用

一:JavaScript中的發佈訂閱 首先我們有這麼一個需求 function ajax(url, callback) { // 實現省略 } ajax("./test1.json", function(data) {

原创 vue的自動化路由+分模塊管理+路由懶加載

近期單獨做了一個系統項目,項目不大但是頁面太多了,爲了後期維護管理容易,做了個自動化加載路由以及模塊化的管理。在此記錄一下。 直接擼代碼 1.首先看目錄 router下的index.js是路由配置文件。 views下每個目錄爲一個模塊,

原创 關於iview中Menu 導航菜單 循環嵌套 多級嵌套

介紹: 菜單通過後端接口請求數據來進行渲染 達到圖中所示例的效果(ps:圖中僅展示二級菜單,可根據需求三級四級) 開始擼代碼。 這是官方的菜單代碼。 <Menu :theme="theme2">

原创 vuex模塊化懶加載 vuex模塊化 懶加載 vuex按需加載

項目的github地址(源碼) 說明 這是一個解決大型項目中,vuex數據臃腫龐大導致的性能問題。對vuex進行模塊化並執行懶加載模式 文件目錄說明 |--src |--|--assets 樣式文件 |--|

原创 【前端小白】Event Loop理解 異步 JavaScript Node.JS

首先,event loop是一個執行模型,在瀏覽器中和node.js中實現不一樣。 瀏覽器中,Eventloop是基於html5標準,而node.js是基於libux。 一:先看看瀏覽器端的 1.有宏任務與微任務 宏任務 macrotas

原创 【算法從入門到放棄】深入理解學習 最長公共子序列

在前端組件框架裏面,很常見的dom處理就是將一個dom樹切換爲另外一個dom樹,現代的mvvm框架基本都是在dom樹的每一層上去做diff的。簡化的來看就是要以最小的開銷從 "abcde" 切換到 "ace"。 首先,我們瞭解一下基本概念

原创 提高代碼質量的設計模式(策略模式和狀態模式;外觀模式;迭代器模式;備忘錄模式;)

高質量代碼,方便後續的一切操作;方便他人閱讀 什麼是代碼質量 代碼整潔 結構規整,沒有漫長的結構 閱讀好理解 策略模式和狀態模式 行爲型 目的:優化if-else分支, 場景:當if-else分支過多時, 一:基本結構 策略模式

原创 可擴展型的設計模式(適配器模式-結構性;裝飾者模式-結構性;命令模式-行爲型;觀察者模式-行爲型;職責鏈模式-行爲型;訪問者模式-技巧型。)

什麼是好的可擴展性 需求發生變更時不需要重新改舊代碼 代碼修改不會引起大規模變動 方便加入新模塊 低耦合   適配器模式 ps:結構性 (接口) 目的:通過寫一個適配器,來代替替換 應用場景:面臨接口不通用的問題 一:基本結構 用l

原创 結構型設計模式-提高可複用性(橋接模式、享元模式、模板方法模式)

複用性要點: 對象可以再重複使用,不用修改 重複代碼少 模塊功能單一   橋接模式 目的:通過橋接代替耦合, 應用場景:減少模塊之間的耦合, 一:基本結構 // 有三種形狀,每種形狀都有三種顏色 // 把顏色方法抽離出來 三種形狀

原创 Vue2.0的響應式原理+異步更新隊列的實現

Vue 2.0 Object.defineProperty Vue 2.0中 使用Object.defineProperty來將Data中的屬性都遍歷一遍,轉換爲getter和setter   getter爲依賴收集 當變量修改時,可能涉

原创 創建型設計模式-封裝和對象

要點:     定義變量不會污染外部     能夠作爲一個模塊調用     遵循開閉原則 什麼是好的封裝:     變量外部不可見     調用接口使用     流出擴展接口   A.封裝對象時的設計模式 1.工廠模式 目的:方便我們大量

原创 vue的自動化路由+分模塊管理

近期單獨做了一個系統項目,項目不大但是頁面太多了,爲了後期維護管理容易,做了個自動化加載路由以及模塊化的管理。在此記錄一下。 直接擼代碼 1.首先看目錄 router下的index.js是路由配置文件。 views下每個目錄爲一個模塊,

原创 (菜鳥理解)複合函數compose

compose函數指的是,將需要嵌套執行的函數平鋪。而嵌套執行指的是,一個函數的返回值將作爲另一個函數的參數。 而compose函數的作用是,實現函數編程中的Pointfree,使我們專注於轉換而不是數據。   let add = x

原创 【算法】最長公共子序列

在前端組件框架裏面,很常見的dom處理就是將一個dom樹切換爲另外一個dom樹,現代的mvvm框架基本都是在dom樹的每一層上去做diff的。簡化的來看就是要以最小的開銷從 "abcde" 切換到 "ace"。 首先,我們瞭解一下基本概念