原创 編程訓練--每週一道編程題(十六)

題目: 給你一個整數數組 nums,請你選擇數組的兩個不同下標 i 和 j,使 (nums[i]-1)*(nums[j]-1) 取得最大值。 請你計算並返回該式的最大值。 示例: 輸入:nums = [3,4,5,2] 輸出:12 解

原创 淺談ES6箭頭函數

一、什麼是箭頭函數 箭頭函數是ES6新增的一種定義函數的方式,簡化了function方式定義函數的寫法,由於寫法簡便可以在部分場景取代function。 二、如何使用箭頭函數 const str2number = str => Numb

原创 Vue源碼解讀(五)---new Vue發生了什麼

new Vue 發⽣了什麼 從⼊⼝代碼開始分析,我們先來分析 new Vue 背後發⽣了哪些事情。我們都知道, new 關鍵字在Javascript 語⾔中代表實例化是⼀個對象,⽽ Vue 實際上是⼀個類,類在 Javascript 中是

原创 Vue源碼解讀(四)---入口文件分析

從⼊⼝開始 我們之前提到過 Vue.js 構建過程,在 web 應⽤下,我們來分析 Runtime + Compiler 構建出來的 Vue.js,它的⼊⼝是 src/platforms/web/entry-runtime-with-co

原创 Vue源碼解讀(九)---createElement

Vue中使用createElement方法來進行之前提到的VNode的創建 export function createElement ( context: Component, tag: any, data: any,

原创 Vue源碼解讀(六)---Vue 實例掛載的實現

先來看⼀下 src/platform/web/entry-runtime-with-compiler.js ⽂件中定義: // 獲取原型上的$mount方法,這個$mount方法在 import Vue from './runtime/

原创 Vue源碼解讀(三)---Runtime Only VS Runtime+Compiler

通常我們利⽤ vue-cli 去初始化我們的 Vue.js 項⽬的時候會詢問我們⽤ Runtime Only 版本的還是 Runtime+Compiler 版本。下⾯我們來對⽐這兩個版本。 Runtime Only 我們在使⽤ Runti

原创 Vue源碼解讀(二)---Vue源碼構建

Vue.js 源碼構建 Vue.js 源碼是基於 Rollup 構建的,它的構建相關配置都在 scripts ⽬錄下。 構建腳本 通常⼀個基於 NPM 託管的項⽬都會有⼀個 package.json ⽂件,它是對項⽬的描述⽂件,它的內容實

原创 Vue源碼解讀(七)---render

render Vue 的 _render ⽅法是實例的⼀個私有⽅法,它⽤來把實例渲染成⼀個虛擬 Node。它的定義在src/core/instance/render.js ⽂件中: Vue.prototype._render = fun

原创 Vue源碼解讀(十)---update

Vue 的 _update 是實例的一個私有方法,它被調用的時機有 2 個,一個是首次渲染,一個是數據更新的時候,我這章就先看一下首次渲染部分,數據更新部分等分析到響應式的原理的時候再分析。_update 方法的作用是把 VNode 渲染

原创 Vue源碼解讀(十三)---派發更新

通過上⼀節分析我們瞭解了響應式數據依賴收集過程,收集的⽬的就是爲了當我們修改數據的時候, 可以對相關的依賴派發更新,那麼這⼀節我們來詳細分析這個過程。 我們先來回顧⼀下 setter 部分的邏輯,對應路徑:src/core/observe

原创 編程訓練--每週一道編程題(十四)

題目:兩數相加 給出兩個 非空 的鏈表用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式存儲的,並且它們的每個節點只能存儲 一位 數字。如果,我們將這兩個數相加起來,則會返回一個新的鏈表來表示它們的和。 您可以假設除了數字

原创 編程訓練--每週一道編程題(十五)

題目: 給定一個只包括 '(',')','{','}','[',']' 的字符串,判斷字符串是否有效。 有效字符串需滿足: 左括號必須用相同類型的右括號閉合。 左括號必須以正確的順序閉合。 注意空字符串可被認爲是有效字符串。 示例: 輸

原创 Vue源碼解讀(十一)---深入響應式原理

之前介紹的都是 Vue 怎麼實現數據渲染和組件化的,主要講的是初始化的過程,把原始的數據最終映射到 DOM 中,但並沒有涉及到數據變化到 DOM 變化的部分。⽽ Vue 的數據驅動除了數據渲染DOM 之外,還有⼀個很重要的體現就是數據的變

原创 使用vue3.0仿cnode網站

隔離期間,太無聊了,就使用Vue3.0仿cnode網站 效果如圖: GitHub地址:https://github.com/guxinduyin666/cnode-vue