成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Vue源碼解讀(1)--src/core/index.js 入口文件

tangr206 / 1187人閱讀

摘要:生產(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

相關(guān)文章

  • Vue源碼學習(一)——追根究底Vue

    摘要:其中執(zhí)行命令是我們當前所關(guān)注的,對于項目的文件結(jié)構(gòu),我們需要去找到項目的啟動的入口文件,接下來我們?nèi)ヒ徊揭徊降恼业椒治雒钍且粋€模塊打包器。 打算開始學習vue的源碼開始,我開始 serach 關(guān)鍵詞:vue 源碼,可是發(fā)現(xiàn)很多都不是我想要看到的東西,所以打算記錄下來,學習的記錄和日后分享。我在想這個文章的名字時,手把手系列?十分鐘系列?小白到大佬系列?都不是,只是單純的學習筆記 文件...

    Harriet666 評論0 收藏0
  • Vue2 源碼分析

    摘要:應用啟動一般是通過,所以,先從該構(gòu)造函數(shù)著手。構(gòu)造函數(shù)文件該文件只是構(gòu)造函數(shù),原型對象的聲明分散在當前目錄的多個文件中構(gòu)造函數(shù)接收參數(shù),然后調(diào)用。 源碼版本:v2.1.10 分析目標 通過閱讀源碼,對 Vue2 的基礎運行機制有所了解,主要是: Vue2 中數(shù)據(jù)綁定的實現(xiàn)方式 Vue2 中對 Virtual DOM 機制的使用方式 源碼初見 項目構(gòu)建配置文件為 build/conf...

    alin 評論0 收藏0
  • vue源碼學習(一)——從入口開始

    摘要:學習源碼時,我們首先需要看的是文件,該文件里配置了的依賴以及開發(fā)環(huán)境和生產(chǎn)環(huán)境的編譯的啟動腳本等其他信息。一個是完整版,一個是運行時。運行時用來創(chuàng)建實例渲染并處理虛擬等的代碼?;旧暇褪浅ゾ幾g器的其它一切。 學習vue源碼時,我們首先需要看的是package.json文件,該文件里配置了vue的依賴以及開發(fā)環(huán)境和生產(chǎn)環(huán)境的編譯的啟動腳本等其他信息。首先我們需要關(guān)注的是script。我...

    ybak 評論0 收藏0
  • Vue源碼學習(二)——從宏觀看Vue

    摘要:上一篇文章我們寫到從入口文件一步步找到的構(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...

    AndroidTraveler 評論0 收藏0
  • 深入Vue.js源碼開始(二)

    摘要:有一點要注意的是,暴露的方法最好不要依賴,因為它可能經(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...

    rainyang 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<