• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    Vue官方文檔梳理之全局配置

    來源:懂視網 責編:小采 時間:2020-11-27 22:25:09
    文檔

    Vue官方文檔梳理之全局配置

    Vue官方文檔梳理之全局配置:本文主要介紹了Vue官方文檔梳理之全局配置,分享給大家,也給自己留個筆記。具體如下: optionMergeStrategies 用于自定義選項的合并策略,Vue已經預定義了一些自己配置項的合并策略,如下圖所示。 比如props、methods、computed就是同一個策略:
    推薦度:
    導讀Vue官方文檔梳理之全局配置:本文主要介紹了Vue官方文檔梳理之全局配置,分享給大家,也給自己留個筆記。具體如下: optionMergeStrategies 用于自定義選項的合并策略,Vue已經預定義了一些自己配置項的合并策略,如下圖所示。 比如props、methods、computed就是同一個策略:

    本文主要介紹了Vue官方文檔梳理之全局配置,分享給大家,也給自己留個筆記。具體如下:

    optionMergeStrategies

    用于自定義選項的合并策略,Vue已經預定義了一些自己配置項的合并策略,如下圖所示。

    比如props、methods、computed就是同一個策略:子配置項會覆蓋父級配置項。源碼如下:

    var strats = config.optionMergeStrategies;
    strats.props =
    strats.methods =
    strats.computed = function (parentVal, childVal) {
     if (!childVal) { return Object.create(parentVal || null) }
     if (!parentVal) { return childVal }
     var ret = Object.create(null);
     extend(ret, parentVal);
     extend(ret, childVal);
     return ret
    };

    什么時候才會用到這些配置的合并規(guī)則呢?查閱源碼,發(fā)現(xiàn)只要調用mergeOptions時,就會用到上面的策略。總結下來有以下幾種場景:

    1. 使用了 Vue.mixin 或 mixins 配置項
    2. 使用了 Vue.extend 或 extends 配置項或Vue.component(背后實際上是調用了Vue.extend)
    3. new Vue() 或 new Vue.extend()

    單獨使用一個時,也會觸發(fā)合并規(guī)則,但是只會有child包含配置項,所以不需要合并。只有當多個一起使用時,比如 Vue.compeont 和 extends 、mixins 配置項一起使用,這個時候就parent和child都會有相同的配置項,這時候也才有所謂的合并,舉個完整的例子來說明上述的場景。

    Vue.config.optionMergeStrategies['customOption'] = function (toVal, fromVal) {
     console.log(toVal, fromVal)
     if (!toVal) return fromVal
     if (!fromVal) return toVal
     // toVal 和 fromVal 同時存在,表明此時parent和child都包含配置型
     return toVal + '&' + fromVal
    }
    
    Vue.extend({
     customOption: 'Vue.extend'
    })
    
    Vue.component('custom', {
     customOption: 'Vue.component'
    })
    
    var vm = new Vue({
     customOption: 'newVue',
     extends: {
     customOption: 'extends'
     },
     mixins: [{
     customOption: 'mixins'
     }]
    })
    
    console.log(vm.$options.customOption)

    控制臺打印如下:

    按順序解釋如下:

    1. undefined "Vue.extend"合并 Vue.options 和 extendOptions
    2. undefined "Vue.component"合并 Vue.options 和 extendOptions
    3. undefined "extends"extends配置項合并先于mixins,此時合并的是 Vue.options 和extends配置,因此toVal是undefined
    4. extends mixins完成了extends合并,接著就是mixins,此時 Vue.options 上已經包含了extends的配置項,因此 toVal 是extends,fromVal就是mixins。最終合并后的值:extends&mixins
    5. extends&mixins newVue完成了extends和mixins后,最終合并vm.constructor和實例的options
    6. extends&mixins&newVue最終合并后的 customOption 的選項值

    devtools

    離線下載chrome 擴展地址(不需要梯子):https://www.crx4chrome.com/crx/11903/

    把下載的文件拖到擴展程序頁面即可完成安裝。

    errorHandler

    Vue 涉及到執(zhí)行用戶配置的地方都放在 try catch 中,因此即使你 throw 拋出錯誤,整個實例也不會掛。

    Vue.config.errorHandler = function (err, vm, info) {
     console.log(arguments)
    }
    new Vue({
     created: function () {
     throw "error msg"
     }
    })
    // ["error msg", Vue$3, "created hook"]

    ignoredElements

    首先要理解忽略的到底是什么?是元素本身還是包括元素里的內容(就像v-pre一樣),首先要知道這個配置的背景,官網舉了Web Components APIs(以下簡稱WCA)的例子,WCA和Vue.component一樣,也可以自定義元素,不過這個目前還是個草案。那么對于Vue來講,元素就可以分為:HTML原生元素,Vue自定義元素,WCA自定義元素。那么對于一個元素,Vue的判斷順序:原生 > Vue自定義 > ignoredElements > 無法識別,對于無法識別的Vue會假定你可能把Vue自己定義元素拼錯了,因此會發(fā)出Unknown custom element的警告。另外:

    1. Vue定義和HTML標簽同名的元素是無效的,比如定義Vue.compoent('header',{})
    2. ignoredElements包含Vue定義的元素是無效的
    3. WCA自定義元素可以被構建虛擬dom

    performance(2.2.0+)

    只能在開發(fā)版上使用。caniuse上查詢 performance 可知主流瀏覽器都已經支持,這個可以用于分析Vue組件在不同階段中花費的時間,進而知道哪里可以優(yōu)化。查看源碼,發(fā)現(xiàn)在以下階段加上了performance.measure。

    1. performance.measure((組件名+ " render"), startTag, endTag);
    2. performance.measure((組件名+ " patch"), startTag, endTag);
    3. performance.measure((組件名 + " init"), startTag, endTag);
    4. performance.measure(((組件名 + " compile"), 'compile', 'compile end');

    比如在谷歌瀏覽器中查看自定義組件Vue.component('my-component')的各個階段花費的時間:

    在 IE11 中查看

    productionTip(2.2.0+)

    對于開發(fā)版本,會默認向控制臺打印:

    設置為false就不再顯示。

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    Vue官方文檔梳理之全局配置

    Vue官方文檔梳理之全局配置:本文主要介紹了Vue官方文檔梳理之全局配置,分享給大家,也給自己留個筆記。具體如下: optionMergeStrategies 用于自定義選項的合并策略,Vue已經預定義了一些自己配置項的合并策略,如下圖所示。 比如props、methods、computed就是同一個策略:
    推薦度:
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 久久久精品日本一区二区三区| 久久国产综合精品五月天| 国产线视频精品免费观看视频| 小辣椒福利视频精品导航| 国产精品日韩欧美在线第3页 | 久久精品国产亚洲AV无码娇色| 久久精品二区| 中文字幕亚洲精品资源网| 9久久9久久精品| 国精品午夜福利视频不卡| 亚洲精品成人a在线观看| 国产呦小j女精品视频| 亚洲精品天天影视综合网| 92国产精品午夜福利| 日韩精品无码一本二本三本| 亚洲精品无码久久久| 久久成人精品| 精品欧美一区二区在线观看| 911亚洲精品国内自产| 国产精品一二三区| 国产成人A人亚洲精品无码| 日韩精品专区AV无码| 伊人精品久久久久7777| 天天视频国产精品| 四虎影院国产精品| 亚洲精品国精品久久99热| 毛片a精品**国产| 天天视频国产精品| 亚洲国产精品ⅴa在线观看| 亚洲国产精品成人AV无码久久综合影院 | 四虎国产精品永久在线看| 久久亚洲精品无码播放| 老司机精品影院91| 四虎国产精品永久在线无码| 无翼乌无遮挡全彩老师挤奶爱爱帝国综合社区精品 | 亚洲AV蜜桃永久无码精品| 久久亚洲国产成人精品无码区| 精品人妻一区二区三区毛片| 黄床大片免费30分钟国产精品| 精品午夜福利1000在线观看| 久久精品国产精品亚洲人人|