VueJS學(xué)習(xí)之旅 05

上一節(jié)我們簡(jiǎn)要的介紹了一下初始化Global API的過程选脊,下面我們?cè)敿?xì)來看看鸣个。


Global Config

OK榛斯,結(jié)合官方文檔和代碼細(xì)節(jié)绊汹,我們來看看這些 Global Config的具體用法:

  • Vue.config.optionMergeStrategies

    文檔說明:

    • 類型:{ [key: string]: Function }
    • 默認(rèn)值:{}
    • 用法:
    Vue.config.optionMergeStrategies._my_option = function (parent, child, vm) {}
    const Profile = Vue.extend({_my_option: 1})
    

    自定義合并策略的選項(xiàng)。合并策略選項(xiàng)分別接受第一個(gè)參數(shù)作為父實(shí)例奖慌,第二個(gè)參數(shù)為子實(shí)例抛虫,Vue實(shí)例上下文被作為第三個(gè)參數(shù)傳入。

    源碼中與 Vue.config.optionMergeStrategies 相關(guān)的主要有兩個(gè)文件

    // src/core/config.js
    // src/core/util/options.js
    
    1. 'src/core/config.js' 中給定了默認(rèn)值简僧。
    2. 'src/core/util/options.js' 之中有個(gè) mergeOptions 函數(shù)建椰,是用來合并屬性的。
      具體看看細(xì)節(jié)岛马,它會(huì)根據(jù)具體的合并策略合并屬性:
      如果某一屬性存在自定義策略广凸,則使用自定義策略給定的方法進(jìn)行合并。
      如果不存在自定義策略蛛枚,則是用默認(rèn)策略:如果子實(shí)例有值則使用該值谅海,子實(shí)例沒有則使用父實(shí)例的值。
    3. 該文件之中還預(yù)定義了一些合并策略供內(nèi)部使用蹦浦,主要針對(duì)vue的保留字 :
      [
      'el',
      'propsData',
      'data',
      'beforeCreate',
      'created',
      'beforeMount',
      'mounted',
      'beforeUpdate',
      'updated',
      'beforeDestroy',
      'destroyed',
      'activated',
      'deactivated',
      'components',
      'directives',
      'filters',
      'watch',
      'props',
      'methods',
      'computed'
      ]
  • Vue.config.silent

    文檔說明:

    • 類型:boolean
    • 默認(rèn)值:false
    • 用法:
    Vue.config.silent = true
    

    取消 Vue 所有的日志與警告扭吁。

    源碼中與 Vue.config.silent 相關(guān)的主要有兩個(gè)文件

    // src/core/config.js
    // src/core/util/debug.js
    
    1. 'src/core/config.js' 中給定了默認(rèn)值。
    2. 'src/core/util/debug.js' 之中有個(gè)供全局使用的 warn 函數(shù)盲镶,會(huì)是用這個(gè)值來判斷是否輸出警告信息侥袜。
  • Vue.config.devtools

    文檔說明:

    • 類型:boolean
    • 默認(rèn)值:true (生產(chǎn)版為 false)
    • 用法:
    //務(wù)必在加載 Vue 之后,立即同步設(shè)置以下內(nèi)容
    Vue.config.devtools = true
    

    配置是否允許 vue-devtools 檢查代碼溉贿。開發(fā)版本默認(rèn)為 true枫吧,生產(chǎn)版本默認(rèn)為 false。生產(chǎn)版本設(shè)為 true 可以啟用檢查宇色。

    源碼中與 Vue.config.devtools 相關(guān)的主要有4個(gè)文件

    // src/core/config.js
    // src/core/observer/scheduler.js
    // src/entries/web-runtime.js
    // src/server/render.js
    
    1. 'src/core/config.js' 中給定了默認(rèn)值九杂。
    2. 其它文件中,主要使用這個(gè)值來判斷是否啟用真正的 devtools 來觸發(fā)調(diào)試事件或打印調(diào)試信息宣蠕。
  • Vue.config.errorHandler

    文檔說明:

    • 類型:Function
    • 默認(rèn)值:默認(rèn)拋出錯(cuò)誤
    • 用法:
    Vue.config.errorHandler = function (err, vm) { }
    

    指定組件的渲染和觀察期間未捕獲錯(cuò)誤的處理函數(shù)例隆。這個(gè)處理函數(shù)被調(diào)用時(shí),可獲取錯(cuò)誤信息和 Vue 實(shí)例抢蚀。

    源碼中與 Vue.config.errorHandler 相關(guān)的主要有3個(gè)文件

    // src/core/config.js
    // src/core/instance/render.js
    // src/core/observer/watcher.js
    
    1. 'src/core/config.js' 中給定了默認(rèn)值镀层。
    2. 其它文件中,主要使用給定的錯(cuò)誤處理函數(shù)來進(jìn)行自定義錯(cuò)誤處理皿曲。
  • Vue.config.ignoredElements

    文檔說明:

    • 類型:Array<string>
    • 默認(rèn)值:[]
    • 用法:
    Vue.config.ignoredElements = [ 'my-custom-web-component', 'another-web-component' ]
    

    須使 Vue 忽略在 Vue 之外的自定義元素 (e.g., 使用了 Web Components APIs)唱逢。否則吴侦,它會(huì)假設(shè)你忘記注冊(cè)全局組件或者拼錯(cuò)了組件名稱,從而拋出一個(gè)關(guān)于 Unknown custom element 的警告坞古。

    源碼中與 Vue.config.ignoredElements 相關(guān)的主要有2個(gè)文件

    // src/core/config.js
    // src/core/vdom/patch.js
    
    1. 'src/core/config.js' 中給定了默認(rèn)值备韧。
    2. 'src/core/vdom/patch.js'文件中,createElm 函數(shù)使用該值绸贡。即在vue在解析tag標(biāo)簽時(shí)盯蝴,是否忽略給定的 elements 毅哗。
  • Vue.config.keyCodes

    文檔說明:

    • 類型:{ [key: string]: number | Array<number> }
    • 默認(rèn)值:{}
    • 用法:
    Vue.config.keyCodes = {
      v: 86,
      f1: 112,
      mediaPlayPause: 179,
      up: [38, 87]
    }
    

    給 v-on 自定義鍵位別名听怕。

    源碼中與 Vue.config.keyCodes 相關(guān)的主要有4個(gè)文件

    // src/core/config.js
    // src/core/instance/proxy.js
    // src/core/instance/render.js
    // src/compiler/codegen/events.js
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市虑绵,隨后出現(xiàn)的幾起案子尿瞭,更是在濱河造成了極大的恐慌,老刑警劉巖翅睛,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件声搁,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡捕发,警方通過查閱死者的電腦和手機(jī)疏旨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來扎酷,“玉大人檐涝,你說我怎么就攤上這事》òぃ” “怎么了谁榜?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)凡纳。 經(jīng)常有香客問我窃植,道長(zhǎng),這世上最難降的妖魔是什么荐糜? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任巷怜,我火速辦了婚禮,結(jié)果婚禮上暴氏,老公的妹妹穿的比我還像新娘丛版。我一直安慰自己,他們只是感情好偏序,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布页畦。 她就那樣靜靜地躺著,像睡著了一般研儒。 火紅的嫁衣襯著肌膚如雪豫缨。 梳的紋絲不亂的頭發(fā)上独令,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音好芭,去河邊找鬼燃箭。 笑死,一個(gè)胖子當(dāng)著我的面吹牛舍败,可吹牛的內(nèi)容都是我干的招狸。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼邻薯,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼裙戏!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起厕诡,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤累榜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后灵嫌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體壹罚,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年寿羞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了猖凛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡绪穆,死狀恐怖辨泳,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情霞幅,我是刑警寧澤漠吻,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站司恳,受9級(jí)特大地震影響途乃,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜扔傅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一耍共、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧猎塞,春花似錦试读、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春倘屹,著一層夾襖步出監(jiān)牢的瞬間银亲,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工纽匙, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留务蝠,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓烛缔,卻偏偏與公主長(zhǎng)得像馏段,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子践瓷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理院喜,服務(wù)發(fā)現(xiàn),斷路器当窗,智...
    卡卡羅2017閱讀 134,628評(píng)論 18 139
  • 上一節(jié)我們結(jié)合代碼和文檔够坐,詳細(xì)介紹了Global Config寸宵,下面我們?cè)敿?xì)來看看Global API崖面。 Glob...
    小A家的銘閱讀 211評(píng)論 0 0
  • 下面我就來看看Vue的核心構(gòu)造器以及其實(shí)例的屬性和方法。 Vue構(gòu)造器 從 'src/core/index.js'...
    小A家的銘閱讀 3,077評(píng)論 0 0
  • 前面探討了一大堆梯影,似乎都和如何使用VueJS沒有直接關(guān)系巫员,但是通過學(xué)習(xí)發(fā)布說明和guild構(gòu)建的過程,還是對(duì)深入理...
    小A家的銘閱讀 879評(píng)論 0 0
  • 前言 webpack2和vue2已經(jīng)不是新鮮東西了甲棍,滿大街的文章在講解webpack和vue简识,但是很多內(nèi)容寫的不是...
    技術(shù)宅小青年閱讀 6,521評(píng)論 4 43