摘要:這邊有個的定義。獲取元素的名稱空間解析特定平臺的實(shí)際標(biāo)記名稱檢查屬性是否必須使用屬性例如綁定異步執(zhí)行更新。其中屬性返回一個字符串,該字符串包含對象的源文本,并且它不包含兩邊的兩個正斜杠和任何標(biāo)志。
SSR_ATTR
var SSR_ATTR = "data-server-rendered";
這邊有個vue SSR的定義。服務(wù)端渲染,后面在6446行才有。看到了多帶帶給他寫一篇。ASSET_TYPES
var ASSET_TYPES = [ "component", "directive", "filter" ];
組件可以擁有的資產(chǎn)類型列表,這邊有幾個過濾器,自定義,組件的定義,后面看到后打錨點(diǎn)LIFECYCLE_HOOKS
var LIFECYCLE_HOOKS = [ "beforeCreate", "created", "beforeMount", "mounted", "beforeUpdate", "updated", "beforeDestroy", "destroyed", "activated", "deactivated", "errorCaptured", "serverPrefetch" ];
生命周期的鉤子。。。依舊留個錨點(diǎn)config
var config = ({ optionMergeStrategies: Object.create(null), //是否發(fā)出警告 silent: false, //啟動時顯示生產(chǎn)模式提示消息 productionTip: "development" !== "production", //是否啟用devtools devtools: "development" !== "production", //是否記錄性能 performance: false, //用于監(jiān)視程序錯誤的錯誤處理程序 errorHandler: null, //用于監(jiān)視程序警告的警告處理程序 warnHandler: null, //忽略某些自定義元素 ignoredElements: [], //v-on為自定義用戶關(guān)鍵字 keyCodes: Object.create(null), //檢查是否保留了標(biāo)記,以便不能將其注冊為組件。 isReservedTag: no, //檢查是否保留了屬性,以便它不能用作組件屬性。 isReservedAttr: no, //檢查標(biāo)記是否為未知元素。 isUnknownElement: no, //獲取元素的名稱空間 getTagNamespace: noop, //解析特定平臺的實(shí)際標(biāo)記名稱 parsePlatformTagName: identity, //檢查屬性是否必須使用屬性(例如value)綁定 mustUseProp: no, //異步執(zhí)行更新。用于Vue測試Utils,如果設(shè)置為false,這將顯著降低性能 async: true, //由于遺留原因而暴露 _lifecycleHooks: LIFECYCLE_HOOKS });Unicode正則表達(dá)式
var unicodeRegExp = /a-zA-Zu00B7u00C0-u00D6u00D8-u00F6u00F8-u037Du037F-u1FFFu200C-u200Du203F-u2040u2070-u218Fu2C00-u2FEFu3001-uD7FFuF900-uFDCFuFDF0-uFFFD/;
用于分析HTML標(biāo)記、組件名稱和屬性路徑的Unicode字母isReserved
function isReserved (str) { var c = (str + "").charCodeAt(0); return c === 0x24 || c === 0x5F }
檢查字符串開頭是否為 $ 或 _ ASCII
charCodeAt() 方法可返回指定位置的字符的 Unicode 編碼。這個返回值是 0 - 65535 之間的整數(shù)。
十進(jìn)制 | 十六進(jìn)制 | 字符 |
---|---|---|
36 | 0x24 | $ |
95 | 0x5F | _ |
function def (obj, key, val, enumerable) { Object.defineProperty(obj, key, { value: val, enumerable: !!enumerable, writable: true, configurable: true }); }
定義屬性,其中!!強(qiáng)制轉(zhuǎn)換 booleanparsePath
var bailRE = new RegExp(("[^" + (unicodeRegExp.source) + ".$_d]")); function parsePath (path) { if (bailRE.test(path)) { return } var segments = path.split("."); return function (obj) { for (var i = 0; i < segments.length; i++) { if (!obj) { return } obj = obj[segments[i]]; } return obj } }
UA解析簡單的路徑。
首先定義了一個正則。其中source屬性返回一個字符串,該字符串包含regexp對象的源文本,并且它不包含兩邊的兩個正斜杠和任何標(biāo)志。
test() 方法檢查字符串是否匹配bailRE
segments將path用split分割成字符串?dāng)?shù)組,一個循環(huán)(obj)是什么?
var hasProto = "__proto__" in {}; var inBrowser = typeof window !== "undefined"; var inWeex = typeof WXEnvironment !== "undefined" && !!WXEnvironment.platform; var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase(); var UA = inBrowser && window.navigator.userAgent.toLowerCase(); var isIE = UA && /msie|trident/.test(UA); var isIE9 = UA && UA.indexOf("msie 9.0") > 0; var isEdge = UA && UA.indexOf("edge/") > 0; var isAndroid = (UA && UA.indexOf("android") > 0) || (weexPlatform === "android"); var isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === "ios"); var isChrome = UA && /chrome/d+/.test(UA) && !isEdge; var isPhantomJS = UA && /phantomjs/.test(UA); var isFF = UA && UA.match(/firefox/(d+)/); var nativeWatch = ({}).watch;
這個太基礎(chǔ)了,不多解釋了。如果需要可以百度一下userAgent
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/102632.html
摘要:五六月份推薦集合查看最新的請點(diǎn)擊集前端最近很火的框架資源定時更新,歡迎一下。蘇幕遮燎沈香宋周邦彥燎沈香,消溽暑。鳥雀呼晴,侵曉窺檐語。葉上初陽乾宿雨,水面清圓,一一風(fēng)荷舉。家住吳門,久作長安旅。五月漁郎相憶否。小楫輕舟,夢入芙蓉浦。 五、六月份推薦集合 查看github最新的Vue weekly;請::點(diǎn)擊::集web前端最近很火的vue2框架資源;定時更新,歡迎 Star 一下。 蘇...
摘要:五六月份推薦集合查看最新的請點(diǎn)擊集前端最近很火的框架資源定時更新,歡迎一下。蘇幕遮燎沈香宋周邦彥燎沈香,消溽暑。鳥雀呼晴,侵曉窺檐語。葉上初陽乾宿雨,水面清圓,一一風(fēng)荷舉。家住吳門,久作長安旅。五月漁郎相憶否。小楫輕舟,夢入芙蓉浦。 五、六月份推薦集合 查看github最新的Vue weekly;請::點(diǎn)擊::集web前端最近很火的vue2框架資源;定時更新,歡迎 Star 一下。 蘇...
摘要:主要大綱從方法看全局配置尋根問祖的構(gòu)造函數(shù)的出生地先來一段最常見的代碼上面已經(jīng)創(chuàng)建了一個應(yīng)用程序從上面很容易就看出來是一個構(gòu)造器,是用這個構(gòu)造器構(gòu)造出來的實(shí)例化對象,實(shí)例化的時候傳入了參數(shù),參數(shù)中包括和上述延伸了個問題構(gòu)造器是什么模樣可以 主要大綱: 從initGlobalAPI方法看Vue.config全局配置 尋根問祖-Vue的構(gòu)造函數(shù)的出生地 先來一段最常見的vue代碼dem...
摘要:寫文章不容易,點(diǎn)個贊唄兄弟專注源碼分享,文章分為白話版和源碼版,白話版助于理解工作原理,源碼版助于了解內(nèi)部詳情,讓我們一起學(xué)習(xí)吧研究基于版本如果你覺得排版難看,請點(diǎn)擊下面鏈接或者拉到下面關(guān)注公眾號也可以吧原理源碼版之拼接綁定的事件今天我們 寫文章不容易,點(diǎn)個贊唄兄弟 專注 Vue 源碼分享,文章分為白話版和 源碼版,白話版助于理解工作原理,源碼版助于了解內(nèi)部詳情,讓我們一起學(xué)習(xí)吧研究...
閱讀 2415·2021-11-11 11:01
閱讀 3287·2021-10-11 10:57
閱讀 2645·2021-09-30 09:46
閱讀 3492·2021-07-26 23:38
閱讀 1564·2019-08-29 12:22
閱讀 650·2019-08-29 11:28
閱讀 2352·2019-08-26 14:04
閱讀 3050·2019-08-23 18:34