原创 探究 webpack 如何實現模塊化加載

探究 webpack 如何實現模塊化加載 最近稍稍比較忙,但還是要騰出時間來寫寫博客,博客真的是個好東西,只要你堅持。這次主要講講 webpack 打包後的代碼,分析他是如何實現模塊化(同步)加載模塊的,然後下次再講講如何按需(異

原创 if else 優化之策略模式

if else 優化之策略模式 if else 太多,嵌套太深,已然成爲我們搬磚路上經常遇到的問題。最近在項目上使用策略模式,有助於優化嵌套的代碼,使結構更加清晰。 策略模型 什麼是策略模式? 定義:通過定義了一系列的算法,並將每

原创 vue 源碼之雙向綁定

vue 雙向綁定 vue 雙向綁定,問就是 Object.defineProperty 劫持數據獲得狀態變更,發佈訂閱者模式進行變更通知。好吧,現在地球人都知道這兩句話了,要是別人再問你實現細節,我們應該如何回答呢。也是爲了讓自己

原创 探究 webpack 如何實現模塊異步加載

探究 webpack 如何實現模塊異步加載 之前一篇文章講了 webpack 如何實現模塊的同步加載,在此基礎上,今天接着講如何實現異步加載模塊。 一、源碼 還是用原來的例子,但是主文件中改成按需加載(異步加載) 原來:impor

原创 移動端後退如何刷新

後退刷新 前段時間遇到了移動端後退更新的業務需求,踩了坑當然要總結了。 後退更新的坑在於瀏覽器後退時,緩存文件的使用,JS 代碼的執行。 一、使用了緩存文件,從緩存方向解決 直接禁用緩存,如meta禁用緩存(不可靠),在響應的 h

原创 JQ源碼解析(一)入口檢測與自執行函數

jQ 源碼解析(一)入口檢測 源碼解析 我看的源碼是 3.2.1 版的 JQ 文件 截取 JQ 文件主體如下: (function( global, factory ) { if ( typeof module === "ob

原创 解析 vue-cli 如何構建項目

vue-cli 用 vue-cli 直接生成一個 vue 項目很簡單方便,不過要想深入學習並掌控 vue 項目,瞭解項目是如何建構的是很必要,今天就來一邊學習一邊試着分析。 本文 vue-cli 版本 2.9.6 一、初始化目錄結

原创 vue-cli 腳手架是如何打包優化

vue 腳手架如何打包優化 之前一篇博客講了 vue-cli 是如何構建項目的,這次講講 vue-cli 打包做了什麼優化。 vue-cli 項目構建博客地址 vue-cli 優化 這裏有壓縮代碼,代碼分割,還有利用緩存三個方面

原创 Object.create 和 new 區別與原理

Object.create 和new 區別與原理 今天無意中看到一篇關於 Object.create 和 new 區別的博客,看完後覺得很不對勁。再一看評論,果然有問題。所以寫個通俗易懂的博客,也再次理清自己的思緒。我會先說原型鏈

原创 如何優化 vue 項目

Vue 項目優化 之前寫了一篇解析 vue-cli 腳手架的博客 https://blog.csdn.net/u014168594/article/details/90174169,講了 vue-cli 構建項目時是如何優化的,最

原创 Vue style 屬性 scoped 原理詳解

Vue 樣式屬性 scoped 原理詳解 講講 vue 中 scoped 屬性的實現原理以及由此產生的特殊情況,然後引出樣式的權重這一概念。 (一)什麼是 scoped 當 style 標籤有 scoped 屬性時,它的 CSS

原创 call apply bind 箭頭函數 的實現原理

call apply bind 箭頭函數 的實現原理 (一)call 源碼 call() 和 apply() 類似於借用,相當於 A 對象內部有了 B 對象的方法,實質是函數在運行時指定 this 值,打破瞭解析器在函數調用時創建

原创 vue 路由如何回退指定頁面

vue 路由如何回退指定頁面 今天做了一個 vue 項目關於路由場景的問題,路由如何回退指定頁面,在此做個記錄。 一般頁面跳轉記錄 a => b,想從 b 退回 a this.$router.go(-1) 如果頁面跳轉記錄 a

原创 js 引擎如何執行代碼

js 如何運行代碼 歸納總結 js 如何執行代碼全流程 一、js 運行代碼流程 JS 引擎並不是一行一行地分析和執行程序,而是一段一段地分析執行,會先進行編譯階段然後纔是執行階段。 js 運行代碼分爲以下四個階段: 詞法分析 ->

原创 數據檢測類型

數據檢測類型 經常會遇到檢測數據類型的問題,這裏歸納總結一下。 檢測類型 1.typeof 常用於檢測基本數據類型,但是 null 和 Array 類型不起作用,會返回 Object typeof undefined //und