国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

時(shí)尚網(wǎng)站首頁(yè)設(shè)計(jì)中國(guó)國(guó)家人事人才培訓(xùn)網(wǎng)證書(shū)查詢(xún)

時(shí)尚網(wǎng)站首頁(yè)設(shè)計(jì),中國(guó)國(guó)家人事人才培訓(xùn)網(wǎng)證書(shū)查詢(xún),南寧網(wǎng)站seo服務(wù),wordpress 更好的主題文章目錄 前言一、使用RuntimeCompiler解析$mount的原因二、$mount 解析的詳細(xì)過(guò)程1.解析掛載的#app執(zhí)行了vm.$mount2. 通過(guò)$mount方法執(zhí)行以下文件的mount方法3. 執(zhí)行util工具文件夾中的query方法4. 執(zhí)行query方法后返回$mount方法判斷el是否是body5. 判斷!options.render&…

文章目錄

  • 前言
  • 一、使用Runtime+Compiler解析$mount的原因
  • 二、$mount 解析的詳細(xì)過(guò)程
    • 1.解析掛載的#app執(zhí)行了vm.$mount
    • 2. 通過(guò)$mount方法執(zhí)行以下文件的mount方法
    • 3. 執(zhí)行util工具文件夾中的query方法
    • 4. 執(zhí)行query方法后返回$mount方法判斷el是否是body
    • 5. 判斷!options.render
      • (1)options.render是否為真
      • (2)判斷是否使用了template
      • (3)判斷是否是el
      • (4)返回的 mount 的方法
    • 6. 解析mountComponent方法
  • 總結(jié)


前言

Runtime Only 和 Runtime+Compiler的區(qū)別
通常我們利用 vue-cli 去初始化我們的 Vue.js 項(xiàng)目的時(shí)候會(huì)詢(xún)問(wèn)我們用Runtime Only 版本的還是 Runtime+Compiler 版本。
Runtime Only:我們?cè)谑褂?Runtime Only 版本的 Vue.js 的時(shí)候,通常需要借助如 webpack的 vue-loader 工具把 .vue 文件編譯成 JavaScript,因?yàn)槭窃诰幾g階段做的,所以它只包含運(yùn)行時(shí)的 Vue.js 代碼,因此代碼體積也會(huì)更輕量。
Runtime+Compiler:我們?nèi)绻麤](méi)有對(duì)代碼做預(yù)編譯,但又使用了 Vue 的 template 屬性并傳入一個(gè)字符串,則需要在客戶(hù)端編譯模板。如下所示:

// 需要編譯器的版本
new Vue({
template: '<div>{{ hi }}</div>'
})
// 這種情況不需要
new Vue({render (h) {return h('div', this.hi)
}

因?yàn)樵?Vue.js 2.0 中,最終渲染都是通過(guò) render 函數(shù),如果寫(xiě) template 屬性,則需要編譯成 render 函數(shù),那么這個(gè)編譯過(guò)程會(huì)發(fā)生運(yùn)行時(shí),所以需要帶有編譯器的版本。
很顯然,這個(gè)編譯過(guò)程對(duì)性能會(huì)有一定損耗,所以通常我們更推薦使用Runtime-Only 的 Vue.js。


一、使用Runtime+Compiler解析$mount的原因

Vue中我們通過(guò) $mount 方法去掛載vm,而 $mount 方法在多個(gè)文件中都有定義。如源碼 src\platforms\web\runtime\index.ts src\platforms\web\runtime-with-compiler.ts 等文件。由于使用純前端的方式分析源碼,所以我這里分析 Compiler 版本的 $mount,有利于對(duì)原理深入的理解。

src\platforms\web\runtime\index.ts的方法較為簡(jiǎn)單,如下圖
在這里插入圖片描述

二、$mount 解析的詳細(xì)過(guò)程

1.解析掛載的#app執(zhí)行了vm.$mount

在這里插入圖片描述

2. 通過(guò)$mount方法執(zhí)行以下文件的mount方法

路徑:src\platforms\web\runtime-with-compiler.ts
在這里插入圖片描述

3. 執(zhí)行util工具文件夾中的query方法

路徑:src\platforms\web\util\index.ts
也就是main.js 中el: ‘#app’ 傳入的話(huà),就會(huì)執(zhí)行1.1獲取對(duì)應(yīng)的元素
在這里插入圖片描述

4. 執(zhí)行query方法后返回$mount方法判斷el是否是body

在這里插入圖片描述

5. 判斷!options.render

在這里插入圖片描述

(1)options.render是否為真

下一章節(jié)會(huì)詳細(xì)講解

(2)判斷是否使用了template

也就是使用Runtime Only 需要編譯的寫(xiě)法,這個(gè)在前言中詳細(xì)說(shuō)明了,可以返回頂部詳細(xì)看看。

// 使用了template配置的寫(xiě)法
import Vue from 'vue'
var app = new Vue({el: '#app',template: '<div>{{ message }}</div>',  // 使用了templatedata() {return {message: '我是一個(gè)雙向綁定的數(shù)據(jù)'}}
})

(3)判斷是否是el

如果是el,就執(zhí)行g(shù)etOutHtml方法,獲取main.js中el的id名的div元素
在這里插入圖片描述

(4)返回的 mount 的方法

在這里插入圖片描述
路徑:src\platforms\web\runtime\index.ts
在這里插入圖片描述

6. 解析mountComponent方法

路徑 src\core\instance\lifecycle.ts
執(zhí)行updateComponent方法,通過(guò)Watcher根據(jù)數(shù)據(jù)更新執(zhí)行。感興趣可以查看Watcher里面的配置即可。

在這里插入圖片描述


總結(jié)

這就是$mount 掛載的過(guò)程

http://aloenet.com.cn/news/47767.html

相關(guān)文章:

  • 做校園二手交易網(wǎng)站的目的疫情最新消息
  • 網(wǎng)站建設(shè) ur建站鹽城seo網(wǎng)站優(yōu)化軟件
  • web優(yōu)秀網(wǎng)站h5案例分享今日最新國(guó)際新聞
  • 淮北哪有做淘寶網(wǎng)站網(wǎng)盤(pán)資源大全
  • 網(wǎng)站建設(shè)公司專(zhuān)業(yè)高質(zhì)量外鏈
  • 企業(yè)服務(wù)平臺(tái)網(wǎng)站建設(shè)數(shù)據(jù)交換平臺(tái)
  • 織夢(mèng)修改網(wǎng)站背景顏色湛江今日頭條
  • 商丘做網(wǎng)站哪家好如何刷關(guān)鍵詞指數(shù)
  • 邵陽(yáng)競(jìng)價(jià)網(wǎng)站建設(shè)設(shè)計(jì)怎么創(chuàng)建域名
  • 深圳哪家建設(shè)網(wǎng)站公司好國(guó)內(nèi)最大的搜索引擎
  • 做玩具訂制網(wǎng)站好處站長(zhǎng)之家seo綜合查詢(xún)
  • 有沒(méi)有專(zhuān)門(mén)做外貿(mào)的網(wǎng)站互聯(lián)網(wǎng)廣告管理暫行辦法
  • 泉州做網(wǎng)站的公司濰坊網(wǎng)站關(guān)鍵詞推廣
  • 網(wǎng)站開(kāi)發(fā)網(wǎng)站設(shè)計(jì)人力資源培訓(xùn)
  • 青海網(wǎng)站設(shè)計(jì)高端凌哥seo技術(shù)博客
  • 天津網(wǎng)站建設(shè)公騰訊廣告推廣平臺(tái)
  • 重慶網(wǎng)站建設(shè)招標(biāo)全球十大搜索引擎排名
  • 日常網(wǎng)站維護(hù)得物app的網(wǎng)絡(luò)營(yíng)銷(xiāo)分析論文
  • 揚(yáng)州網(wǎng)站制作媒體營(yíng)銷(xiāo)平臺(tái)
  • 做民宿注冊(cè)的網(wǎng)站seo好找工作嗎
  • 微信小程序開(kāi)發(fā)者模式石家莊seo培訓(xùn)
  • 做php網(wǎng)站阿里云服務(wù)器企業(yè)營(yíng)銷(xiāo)策劃實(shí)訓(xùn)報(bào)告
  • 怎么自己做砍價(jià)網(wǎng)站市場(chǎng)營(yíng)銷(xiāo)互聯(lián)網(wǎng)營(yíng)銷(xiāo)
  • 廣東圓心科技網(wǎng)站開(kāi)發(fā)如何用網(wǎng)站模板建站
  • 網(wǎng)站公司怎么做業(yè)務(wù)濟(jì)寧百度推廣公司
  • 劉金鵬做網(wǎng)站外鏈工廠(chǎng)
  • 瑋科網(wǎng)站建設(shè)人力資源培訓(xùn)與開(kāi)發(fā)
  • 個(gè)人電腦做網(wǎng)站打不開(kāi)數(shù)據(jù)庫(kù)百度賬號(hào)登錄官網(wǎng)
  • 做網(wǎng)站需不需要營(yíng)業(yè)執(zhí)照seo引擎優(yōu)化是什么
  • 做相冊(cè)哪個(gè)網(wǎng)站好用嗎長(zhǎng)沙seo網(wǎng)站管理