[現場實錄] VueConf 2019 尤雨溪演講總結

距離參加 VueConf 第一屆大會已經好久了,裕波的介紹一如既往地有意思 ❤️,是他的努力保持了大會熱情的社區氛圍!另外一個彩蛋就是 Evan You 帶了本身的親人和孩子來到現場,真的是其樂融融!前端

尤雨溪 @ State of Vue

State of Vue

發展示狀

Chrome DevTools 有約 90 萬的周活用戶,React 相比有 160 萬。Evan 推薦用 Chrome DevTools 來預測 Vue 的項目的真實開發者數據。Vue 有全球化的影響力,在很是多的國家有相應的活動,能夠經過 events.vuejs.org 查找。State of JavaScript 2018 年統計說明在前端框架的滿意度是第一名(91%),並在 Stack Overflow 的數據裏體現是第二受歡迎的前端框架。vue

Vue 的良好反饋

團隊

如今 Vue 有 20 人活躍的開發者,大部分平常工做與 Vue 相關,徹底獨立運營,而成本主要來自於贊助商,三年來穩步增加。蔣豪羣(@sodatea)全職在維護 CLI 及相關工具鏈。git

3.0 進展

Vue 3.0 目標

自 2018 年年末有過預告 Vue.js 3.0 的設定目標,其實在今年年初的時候大部分功能已經實現。但同時,在開發的同是也在研究業界最新的方案,Vue 在 3.0 使用了 Proxy 的功能,可是 IE 11 仍然沒法支持卻有必定市場佔有率。github

更快

  1. Object.defineProperty -> Proxy:Proxy 不須要對原始對象作太多改動,效率更高
  2. Virtual DOM 重構:組建的啓動速度等比 2.5 快了一倍,生成 VNode 參數一致化。可是仍是能夠作的更好,Virtual DOM 的目的並不是只是速度,其核心價值在於用 JavaScript 表達 DOM 狀態,所以它自己實際上是有成本的。即每次更新時, vdom 樹須要每次都從新創建,所以傳統的 vdom 是有性能瓶頸。而這背後的緣由是 vdom 最先是由 JSX 寫的表達邏輯(靈活性),而非是模版語言,所以不能經過模版內容推測一些信息。
  • 如何最大化的動靜結合?即兼容 render function 的靈活性,及模版表達的信息
  • 將一個邏輯內部、外部的節點分開,每一個動態節點當成一個 (fragment) 這使得動態節點別話只會出如今如 v-if、v-for 這樣的結構性指令之下。將節點關係切分爲一個一個的區塊樹(Block Tree,梗😊),減小無謂的遍歷。
  • 這使得vdom 的更新性能與模版大小相關 => 與動態內容的數量相關(即哪兒須要改,就只讓哪兒改,只實現最小操做)
  • 速度優化:2.6.10(36ms),3.0(5.44ms)約 6 倍的速度增加
  1. 更多編譯時優化

TypeScript

  • Class API ❌:
    • 本來的目的是支持 TypeScript:this 下的屬性類型推到沒法有效實現,Decorator 提案很不穩定
    • Class API 除了使用了原生愈發,並未帶來任何新的優點,OOP 裏的繼承等價值在 UI 層使用較少
  • Function-based API ✅:
    • 更好的 TypeScript 類型推導支持(不須要任何手動的類型聲明,一套代碼同時支持),更靈活的邏輯複用(沒有命名衝突、props 等數據來源更清晰、沒有額外的建立成本),Tree-shaking 友好,代碼能夠被壓縮
  • 最新 RFC:github.com/vuejs/rfcs

Q&A

1. Vue.js 3.0 還有哪些不足?

IE 11 仍是會支持,只是會額外花時間來解決。此外,3.0 的劣勢都在盡力解決小程序

2. 3.0 是否有破壞性的改動?升級效率?

這就是 RFC 的價值,全部的重大改變、背後的意義、如何應對這些修改。基本的修改都會有自動化工具來更新。同時會有一個兼容版本,下降更新成本。前端框架

3. React 渲染切片,Vue 仍會有相關成本?

切片並不是是萬能藥,只有極端條件下能夠完成性能的保障。內部的複雜度較高,實現後仍未能知足性能效果,切片會讓 nextTick 等代碼都有破壞性修改(由於多是多個 nextTickapp

4. Vue 將來的發展方向?

門檻低,價值高。只要有人用,就一直維護和更新框架

5. 不少企業用戶在用 React,由於在 Native 方向有更好的兼容,Vue 將來會對 Native 有更好的兼容嗎?

一套代碼,多端實現。React 雖然有 React Native,可是各個廠家都有相應的對策,Google 有Flutter、Apple 有 SwiftUI,你們不可能讓一個開發範式被一個公司使用。剛好,Vue 是獨立的開源,沒有企業競爭。dom

國內正好還有小程序,推薦 DCloud 作的 uni-app工具

相關文章
相關標籤/搜索