原创 不看會後悔的對象繼承方式

在JavaScript中,對象的繼承大致分爲5種。分別是: 構造函數綁定 原型鏈繼承 拷貝繼承 ES6的Class 經典繼承(利用空對象作爲中介) 經典繼承適用於對象和對象之間的繼承 下面是詳細介紹: 先定義兩個構造函數Animal和C

原创 手動實現bind、call、apply方法

轉載請註明出處 bind() bind()方法創建一個新的函數,在bind()被調用時,這個新函數的this被bind的第一個參數指定,其餘的參數將作爲新函數的參數供調用時使用。 語法: function.bind(thisArg[,arg

原创 自主搭建完整的站點(服務器)

自主搭建完整的站點 在騰訊雲上面特價買了一個服務器,然後就想把博客遷移到自己的服務器上。 下面是折騰的過程: 服務器系統:Cen他OS7,前端框架:Vue.js 域名解析 在域名中添加一條解析記錄,記錄值是服務器的ip地址。 連接服務器

原创 Vue2.x之疑點

這是我自己在深入瞭解 Vue 過程自己思考過的一些問題,特意拿出來記錄一下,以免今後遺忘: 1.Vue 把數據轉換成響應式數據後,是怎麼來觸發getter從而收集依賴的 解答:Vue 在初始化的過程中,把數據都轉換成響應式數據。在觸發生命週

原创 Vue之不完美的極致優化

Vue之不完美的極致優化 如果我們的項目是用腳手架搭建的,大部分的優化腳手架都幫你做了。比如:圖片轉base64、代碼壓縮等。 我今天想說的是一些要自己去優化的地方: 第三方按需加載,比如:Element按需加載,用了哪些組件就之引入哪

原创 Vue源碼2.x.x之總體梳理

前面已經介紹的都是Vue源碼的一下細節,這一篇是對前面的一個總結以及梳理。具體的一下細節,可以看前面的文章。在執行new Vue()後,Vue先初始化數據: initLifucycle :規格化 option && 初始化屬性initEce

原创 Vue源碼之Vue實例初始化

這一節主要記錄一下:Vue 的初始化過程 以下正式開始: Vue官網的生命週期圖示表 重點說一下 new Vue()後的初始化階段,也就是created之前發生了什麼。 initLifecycle 階段 export function

原创 Vue源碼之實例方法

個人博客地址在 Vue 內部,有一段這樣的代碼: import { initMixin } from './init' import { stateMixin } from './state' import { renderMixin }

原创 Vue源碼之虛擬DOM

個人博客地址 什麼是虛擬DOM 虛擬DOM是隨着時代發展而誕生的產物。 在web早期,都是命令式的操作DOM,雖然簡單好用,但是不會維護。 現在,三大主流框架都是聲明式的操作DOM,通過描述狀態和DOM之間的映射關係,來渲染成視圖。狀態怎麼

原创 Vue源碼之響應式原理

Object的變化偵測 像Vue官網上面說的,vue是通過Object.defineProperty來偵測對象屬性值的變化。 function defineReactive (obj, key, val) { let dep = n