摘要:版本基于在閱讀源碼之前建議大家先了解下是出品的靜態類型檢查工具。的源碼利用了做了靜態類型檢查,所以了解有助于我們閱讀源碼這里簡單的介紹下的工作方式類型推斷通過變量的使用上下文來推斷出變量類型,然后根據這些推斷來檢查類型。
版本基于2.5.17-beta.0
在閱讀源碼之前建議大家先了解下Flow
Flow 是 facebook 出品的 JavaScript 靜態類型檢查工具。Vue.js 的源碼利用了 Flow 做了靜態類型檢查,所以了解 Flow 有助于我們閱讀源碼
這里簡單的介紹下Flow
Flow 的工作方式
類型推斷:通過變量的使用上下文來推斷出變量類型,然后根據這些推斷來檢查類型。
類型注釋:事先注釋好我們期待的類型,Flow 會基于這些注釋來判斷。
類型推斷
function split(str) { return str.split("") } split(11)
Flow 檢查上述代碼后會報錯,因為函數 split 期待的參數是字符串,而我們輸入了數字。
類型注釋
添加類型注釋可以提供更好更明確的檢查依據
/*@flow*/ function test(x: number, y: number): number { return x + y } test("str", 0)
因為函數參數的期待類型為數字,而我們提供了字符串。flow會報錯
flow中對數組,函數,類和對象都能添加類型注釋
數組
/*@flow*/ var arr: Array= [1, 2, 3] arr.push("str")
類和對象
/*@flow*/ class Person { constructor(name: string, age: string | number) { this.name= name this.age= age this.sex= false }} var per: Person = new Person("xiaoli", 4) var obj: { arr: Array, per: Person} = { arr: ["hello"] per: new Person("hello", 3) }
想到數據類型大家當然忘不了 null, undefined
如果先讓任意類型可以是 null 或者 undefined 則需要寫成 ?T 的格式即可,注意T就是類型
/*@flow*/ var age: ?number = null age可以為數字或者 null
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/108744.html
摘要:的作用官方文檔的解釋安裝插件。下面展示源碼源碼中采用了的語法。語法,官方解釋是簡單的意思就是是代碼的靜態類型檢查工具。官網鏈接使用的好處就是在編譯期對代碼變量做類型檢查,縮短調試時間,減少因類型錯誤引起的。此時方法內的指向對象。 Vue.use() vue.use()的作用: 官方文檔的解釋: 安裝 Vue.js 插件。如果插件是一個對象,必須提供 install 方法。如果插件是一...
摘要:目錄結構構建相關的文件,一般情況下我們不需要動鉤子別名配置 目錄結構 ├── scripts ------------------------------- 構建相關的文件,一般情況下我們不需要動│ ├── git-hooks ------------------------- git鉤子│ ├── alias.js -------------------------- 別名配...
摘要:框架使用了作為類型檢查,來保證項目的可讀性和維護性。的主目錄下有的配置文件,還有目錄,指定了各種自定義類型。表示構建出來的文件遵循規范。 Flow vue框架使用了Flow作為類型檢查,來保證項目的可讀性和維護性。vue.js的主目錄下有Flow的配置.flowconfig文件,還有flow目錄,指定了各種自定義類型。 在學習源碼前可以先看下Flow的語法 官方文檔 目錄結構 vue....
摘要:運行時用來創建實例渲染并處理虛擬等的代碼。基本上就是除去編譯器的其它一切。版本可以通過標簽直接用在瀏覽器中。為這些打包工具提供的默認文件是只有運行時的構建。為瀏覽器提供的用于在現代瀏覽器中通過直接導入。 Vue版本:2.6.9 源碼結構圖 ├─ .circleci // 包含CircleCI持續集成/持續部署工具的配置文件 ├─ .github ...
閱讀 1642·2021-09-22 15:21
閱讀 2861·2021-09-09 09:32
閱讀 2681·2021-09-02 09:52
閱讀 3299·2019-08-30 14:02
閱讀 2218·2019-08-26 13:25
閱讀 1447·2019-08-26 13:24
閱讀 1599·2019-08-26 10:31
閱讀 1552·2019-08-26 10:16