摘要:生產(chǎn)版本設為可以啟用檢查。只適用于開發(fā)模式和支持的瀏覽器上指定組件的渲染和觀察期間未捕獲錯誤的處理函數(shù)為的運行時警告賦予一個自定義處理函數(shù)。注意這只會在開發(fā)者環(huán)境下生效,在生產(chǎn)環(huán)境下它會被忽略。
Vue源碼主入口:src/core/index.js
import Vue from "./instance/index" // 引用Vue構(gòu)造器 import { initGlobalAPI } from "./global-api/index" // 調(diào)用initGlobalAPI方法,定義全局資源 import { isServerRendering } from "core/util/env" import { FunctionalRenderContext } from "core/vdom/create-functional-component" initGlobalAPI(Vue) ... Vue.version = "__VERSION__" export default Vue //暴露Vue
打印出Vue構(gòu)造器的屬性及原型對象屬性,此時原型對象已額外定義了30個原型對象屬性及一個自動獲得的constructor(構(gòu)造函數(shù))屬性(Vue.prototype.constructor === Vue)
https://segmentfault.com/img/...
該圖片引用自:【Vue源碼探究一】當我們引入Vue,我們引入了什么?
然后查看src/core/global-api/index中的initGlobalAPI方法,將Vue構(gòu)造器作為參數(shù)傳入
export function initGlobalAPI (Vue: GlobalAPI) { // config const configDef = {} /** // 全局配置: config中的參數(shù) config = { optionMergeStrategies: Object.create(null), // 合并策略的選項 silent: false, // 取消 Vue 所有的日志與警告 devtools: process.env.NODE_ENV !== "production", // 配置是否允許 vue-devtools 檢查代碼。開發(fā)版本默認為 true,生產(chǎn)版本默認為 false。生產(chǎn)版本設為 true 可以啟用檢查。 performance: false, // 設置為 true 以在瀏覽器開發(fā)工具的性能|時間線面板中啟用對組件初始化、編譯、渲染和打補丁的性能追蹤。只適用于開發(fā)模式和支持 performance.mark API 的瀏覽器上 errorHandler: null, // 指定組件的渲染和觀察期間未捕獲錯誤的處理函數(shù) warnHandler: null, // 為 Vue 的運行時警告賦予一個自定義處理函數(shù)。注意這只會在開發(fā)者環(huán)境下生效,在生產(chǎn)環(huán)境下它會被忽略。 ignoredElements: [], keyCodes: Object.create(null), // 給 v-on 自定義鍵位別名 isReservedTag: no, isReservedAttr: no, isUnknownElement: no, getTagNamespace: noop, parsePlatformTagName: identity, } **/ configDef.get = () => config // import config from "../config" if (process.env.NODE_ENV !== "production") { configDef.set = () => { util.warn( // Vue.config = {...}會觸發(fā)setter,設置config中屬性不會,Vue.config.silent = true (取消 Vue 所有的日志與警告) "Do not replace the Vue.config object, set individual fields instead." ) } } // 各種全局配置項 Object.defineProperty(Vue, "config", configDef) Vue.util = util // 各種工具函數(shù),及一些兼容性的標志位 Vue.set = set // Vue.set Vue.delete = del // Vue.delete Vue.nextTick = util.nextTick Vue.options = Object.create(null) // Vue默認提供的資源 // ASSET_TYPES: ["component", "directive", "filter"] config._assetTypes.forEach(type => { Vue.options[type + "s"] = Object.create(null) }) Vue.options._base = Vue //builtInComponents: {KeepAlive: KeepAlive} util.extend(Vue.options.components, builtInComponents) initUse(Vue) // Vue.use initMixin(Vue) // Vue.minxin initExtend(Vue) // Vue.extend initAssetRegisters(Vue) }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/95325.html
摘要:其中執(zhí)行命令是我們當前所關(guān)注的,對于項目的文件結(jié)構(gòu),我們需要去找到項目的啟動的入口文件,接下來我們?nèi)ヒ徊揭徊降恼业椒治雒钍且粋€模塊打包器。 打算開始學習vue的源碼開始,我開始 serach 關(guān)鍵詞:vue 源碼,可是發(fā)現(xiàn)很多都不是我想要看到的東西,所以打算記錄下來,學習的記錄和日后分享。我在想這個文章的名字時,手把手系列?十分鐘系列?小白到大佬系列?都不是,只是單純的學習筆記 文件...
摘要:學習源碼時,我們首先需要看的是文件,該文件里配置了的依賴以及開發(fā)環(huán)境和生產(chǎn)環(huán)境的編譯的啟動腳本等其他信息。一個是完整版,一個是運行時。運行時用來創(chuàng)建實例渲染并處理虛擬等的代碼?;旧暇褪浅ゾ幾g器的其它一切。 學習vue源碼時,我們首先需要看的是package.json文件,該文件里配置了vue的依賴以及開發(fā)環(huán)境和生產(chǎn)環(huán)境的編譯的啟動腳本等其他信息。首先我們需要關(guān)注的是script。我...
摘要:上一篇文章我們寫到從入口文件一步步找到的構(gòu)造函數(shù),現(xiàn)在我們要去看看實例化經(jīng)歷的過程的構(gòu)造函數(shù)我們知道的構(gòu)造函數(shù)在中不明白的可以去看上一篇文章源碼學習筆記一。 上一篇文章我們寫到從入口文件一步步找到Vue的構(gòu)造函數(shù),現(xiàn)在我們要去看看Vue實例化經(jīng)歷的過程 Vue的構(gòu)造函數(shù) 我們知道Vue的構(gòu)造函數(shù)在src/core/instance/index.js中,不明白的可以去看上一篇文章 Vue...
摘要:有一點要注意的是,暴露的方法最好不要依賴,因為它可能經(jīng)常會發(fā)生變化,是不穩(wěn)定的。 從入口開始 我們之前提到過 Vue.js 構(gòu)建過程,在 web 應用下,我們來分析 Runtime + Compiler 構(gòu)建出來的 Vue.js,它的入口是 src/platforms/web/entry-runtime-with-compiler.js: 摘選entry-runtime-with-co...
閱讀 3146·2021-10-12 10:11
閱讀 1849·2021-08-16 10:59
閱讀 2861·2019-08-30 15:55
閱讀 1236·2019-08-30 14:19
閱讀 2045·2019-08-29 17:03
閱讀 2478·2019-08-29 16:28
閱讀 3229·2019-08-26 13:47
閱讀 2893·2019-08-26 13:36