跳到主要內容

【2020 COSCUP】Vue 作者尤雨溪分享 現場座無虛席

 【2020 COSCUP】Vue 作者尤雨溪分享 現場座無虛席

2020 COSCUP 第二天的重頭戲兼開場為主辦單位邀請到 Vue 作者—尤雨溪與現場會眾分享即將正式上線的 Vue 3 與個人開源心得。現場座無虛席並且與會眾問答的來回問答十分精彩,文中也邀請到台灣最大的 Vue 社群「Vue.js Taiwan 台灣」的 Kuro Hsu 做 Vue 的簡單懶人包。


COSCUP 第二天的開場為主辦單位邀請非常多次重量級來賓 Vue 作者尤雨溪(Evan You),而今年雖因為疫情關係,Evan 無法來到現場,但恰好搭配著 Vue 3 釋出的熱度,一早就湧進大量人潮。


目前 COSCUP 主辦單位已完整的將影片釋出到網路上囉!有興趣的網友們可點網址觀看:https://youtu.be/Z-i7VY-ez2Q

COSCUP 工作人員也邀請到了台灣最大的 Vue 社群「Vue.js Taiwan 台灣」的 Kuro Hsu 為我們摘錄本次演講與 Vue 3 最精華與懶人包的內容(註:演講時間為 2020 年 8 月 2 日,可能與最新版本有不同,以最新釋出的版本消息為主唷!),若想討論 Vue 的技術與內容的話,也可以加入「Vue.js Taiwan 台灣」與他們一起討論喔!(社團連結:https://www.facebook.com/groups/vuejs.tw)


---

小編問題(一):7/18 release Vue 3(註:此為 Release Candidate、或稱 RC 版本,非正式版)和以往最大的改變(三個):


Kuro 回答:


  1. Vue.js 以往版本 (v1、v2) 的核心底層是以 JavaScript 來開發,而型別檢測系統在 Vue 2 以來一直都有,底層是透過 Flow.js 來實作。


尤雨溪在演講中提及,首先是在近年的前端領域裡,使用 TypeScript 來開發的人越來越多, 而這點對 Vue 2.x 來說對 TS 的支援顯然是不足的;再來是 Flow.js 原本是 facebook 團隊開發用來作為檢查工具,並不是新的程式語言或超集語言, 而 Vue 3.0 底層改用 TypeScript 除了同樣能做到原本 Flow.js 的功能,並且在經過編輯器的整合 (如 VSCode) 甚至可以做到程式碼的即時檢查以及自動補完的提示等功能。 另外,TypeScript 團隊也與 Vue 作者有多次的討論與技術的支援,TypeScript 是否是主流相信不是 Vue 最主要考慮的原因, 而是 TypeScript 團隊積極擁抱社群,聽取並採納社群的意見,這才漸漸成為前端主流。


  1. Proxy-based Reactive Link Text


過去 Vue.js 是採用 ES5 的 Object.defineProperty 來作為資料更新檢測的依據,而 Vue 3.0 則以過去為基礎,更進一步改用 ES6 的 Proxy API。 原因是過去使用 Object.defineProperty 需要針對每一個要監測的狀態加上 getter / setter,而 ES6 Proxy 則無須像過去一個一個為每個屬性加上 getter / setter, 而是透過代理的方式,一次就可以直接監聽狀態物件的存取更新,效率比起過去來得更好,代價就是老舊瀏覽器的支援程度較差。 (就是 IE 不支援啦)


  1. Virtual DOM rewrite for better performance


如上題所述,過去由於 Vue.js 的更新檢測是透過 getter / setter 來做到更新的最小化,所以無需透過迴圈式的 dirty-checking 來做到組件的更新, 但是在單個組件內部的 Virtual DOM 仍需遍歷整個 VDOM 的各個節點來進行比對,如果這個組件裡的動態節點並不多,那麼就會造成多餘的檢查以及效能的浪費。


Vue 3.0 對 Virtual DOM 的重構,會將模板切分成一個個的巢狀區塊,每個區塊的節點結構是固定的, 且只需要透過一個陣列來記錄與追蹤其所包含的動態節點部分。 這樣一來, VDOM 的更新效率則與模板最終的大小無關,而是由組件內動態節點的多寡來決定。 簡單來說,只有動態節點的部分才會進行 VDOM 的重新渲染,這樣就可以做到整體效能的大幅提升。


小編問題(二):Vue 3 release 之後與其他相比最大的優勢是?會不會導致更多人使用?


Kuro 回答:


不跟別人比,就拿 Vue 2.x 來說,同樣功能的程式在 Vue 3.0 的執行效能更快、打包後的程式碼更小, 在開發體驗上,由於採用了 TypeScript,即使開發者不用 TypeScript 來進行開發,也同樣能享受 TypeScript 帶來的好處 (型別檢查、程式碼自動補完等)。 同時,因為採用了 Composition API,更可以減少過去 mixins 所造成的資料衝突,狀態來源不明等問題, 更不用說還從 React 陣營借鑒像是 Portals、Suspense 等新功能,都是非常實用的。

就我個人的看法,即使是在 Vue 3 正式推出後,雖然不見得會吸引其他陣營 (如 React、Angular 等) 立刻將手上專案轉過來改寫, 但正在對為新專案挑選框架的開發者來說,是很有吸引力的。


小編問題(三):若要從 Vue 2.0 升級到 3.0 的須知或建議


Kuro 回答:



首先要考慮的是對舊瀏覽器的支援,如果專案需要支援到老舊瀏覽器 (對就是在說 IE),那麼可能就不適合升級到 Vue 3.0,可以等待 Vue 2.7 的推出做為過渡期的轉換。 而若專案使用過多第三方所開發的 Vue 2.x plugins,也要注意那些 plugins 是否在近期內有升級支援 Vue 3.0 的打算,或是尋求替代品。

如果沒有上述問題,那麼建議可以從小型專案或自己的 side project 開始嘗試 Vue 3.0 的升級, 尤其現在 Vue-cli / vite 等工具已經可以支援直接以 3.0 作為新專案的啟動,或是也可以利用 Vue-cli 來做升級,搭配 vue-cli-service lint 工具,都會有新版本相關的建議與提示。 相信這次的 3.0 版本不會讓你失望的。


如果有更多問題想討論,歡迎加入「Vue.js Taiwan 台灣」與一起討論喔!

留言

這個網誌中的熱門文章

Kronos 如何做到世界級的成績

  由資深華爾街投資人領軍於 2018 年成立,Kronos Research 結合人工智慧、機器學習、高速網路等先進技術,透過進階的資料分析開發出獨家的量化交易預測模型,並使用全自動的交易策略自營,同時作為加密貨幣造市商,提供全球加密貨幣商品的即時報價。至今四年的時間,便擠身全球前五大的加密貨幣量交易團隊,創下 2021 年每日平均交易額 50 億美金,單日最高交易額 230 億美金的記錄。 人才和技術是 Kronos 最重要的兩大要素,團隊採開放式合作、解決問題導向、美式工作風格,Kronos 期許任何職位的夥伴,都能信任彼此、安心發問、共同快速解決問題。主管的管理策略,不同於傳統上對下的管理,而是以幫助者的角色,解決不同的需求,放大每個職位的生產力。我們希望這個產業在台灣能夠茁壯,讓台灣的技術人才知道有這個國際舞台可以發揮。 一窺量化交易技術及團隊 高頻交易跟一般大家熟知的交易最大的差距在於自動化。我們熟知的交易模式多半透過人工,由交易員綜合市場資訊後向交易所下單;高頻交易則是由程式自動判斷市場資訊並且下單。高頻交易多半關注短時間的市場波動,在收到市場報價後,在極短時間透過預先訓練的統計模型做出買賣決策。在高額報酬的背後,結合了不同專業:包括資料科學、統計與機器學習、底層系統優化、以及分散式系統。 高頻交易的流程,從 Market Data Parser 作為源頭持續搜集來自交易所的歷史資料,交由 Alpha Modeling 訓練出可預測未來短時間市場變動的模型。接著交易團隊撰寫策略程式,並依據策略需要套用選擇合適的 Alpha 模型,由極低延遲的交易程式向交易所下單。以下是各模塊的介紹: Market Data Parser(Data Team):高頻交易是一個資料驅動的行業,全面且高正確率的資料對於後續訓練很重要。Kronos Research 在全球十多個機房內有數百台服務器,每天 24 小時不間斷錄製來自交易所的報價單。面對每天 10TB+ 的巨量資料,data team 大量使用雲端分散技術以及自動化技術確保資料流的穩定。 Alpha Modeling(Alpha Team):在投資市場中,Alpha 代表著高於大盤的超額收益,Alpha Model 則代表預測將來市場的數學模型。Alpha Team 透過統計以及機器學習,以敏銳的邏輯跟觀...

2025 議程人氣大揭密!

COSCUP 2025 議程人氣大揭密! 7/9 議程測試上線,今年的 COSCUP 大家最關注的究竟是哪些議程?為了滿足(我們自己也很好奇)大家的好奇心,我們分析了一下 Google Analytics (GA) 報表的排行榜:「最多關注(瀏覽數)」、「最高人氣(活躍使用者數)」及「最具深度(每位活躍使用者的平均參與時間)」來啦! 不管你是第一次參加 COSCUP 的新朋友,還是每年都熱情參與的忠實社群夥伴,都歡迎來瞧瞧這份議程人氣大揭密! 三大指標,看懂關注焦點 我們這次的分析分為「台灣」、「國際」以及「加總」三個區塊,每一個都分別整理出前幾名的議程,讓你快速掌握不同參與者的興趣點。 最多關注(瀏覽數): 最直觀地告訴我們,哪些議程最吸引大家的目光。 最高人氣(活躍使用者數): 讓我們了解,哪些議程讓最多人真正點進去、一探究竟。 最具深度(每位活躍使用者的平均參與時間): 幫助我們發現,哪些議題讓大家停留最久,深入了解內容。 從數據看趨勢,今年的議題熱點 從這份資料中,我們可以觀察到今年 COSCUP 大家感興趣的話題,不僅有傳統開源軟體與程式語言,更有不少議程圍繞在 AI、資料治理、安全合規,以及社群經營等熱門趨勢。 以瀏覽量最高的議程來看,許多朋友依然熱烈追蹤知名講者與經典技術主題。而從參與時間的深度指標來看,一些議題雖然未必獲得大量瀏覽,卻能讓點進去花更多時間細細品味。 同時,我們特別針對國際觀眾的喜好進行分析,也看出國際社群更偏好具有跨國經驗分享、全球趨勢分析與技術實踐經驗的內容,讓我們更加理解國際與在地社群的共同性與差異性。 一起掌握開源潮流!  國際大家看什麼? 最多關注 排名 作者 議程標題 Track 日期時間 議程教室 1 王良丞/LCWang 4色小尺寸電子紙的DRM驅動程式開發之旅 System Software 08-10 09:30 TR213 2 John Ho 何重義、Jessie.D Chang 聊心茶室媽媽桑、Joanna Chen陳芸緻、Bernice Ch...

COSCUP 2023 徵稿辦法 / COSCUP 2023 Call for Proposals

今年 COSCUP 一如往常,徵求各式各樣不同的 Open Source 相關稿件。請於 5 月 22 日 (UTC-12) 前投稿,或可參考本頁下方各議程軌資訊。 請注意, 每場議程長度預設為 30 分鐘 , 惟指定議程軌開放其他議程長度進行選擇 ,會在報名表單第二頁進行填寫,報名表單第一頁的提交型態中,請選擇預設值。 為了追求與全球社群更良好地溝通, 今年所有選中的議程都必須提供英文版的資訊 。一旦您的議程入選,我們會請您提供議程資訊的英文版翻譯。您仍可以自己偏好的語言演講或撰寫 CfP 稿件。 提醒您,COSCUP 是一個倡導開放的研討會,所有演講將錄影並以創用 YouTube CC 姓名標示-相同方式分享 4.0 釋出。如果您的演講有任何不能錄影或不願以此條款釋出的狀況,請務必於投稿表單上註明。 We are looking for talks in several open-source related areas, please submit your proposal before May 22th, 2023 UTC-12. After the review process from the coordinators, we will publish the full programme in early June. Please note that the length of each agenda is preset to 30 minutes, only the specific tracks are open to other agenda lengths for selection, which will be filled in on the second page of the registration form. In the submission type on the first page of the submission form, please select the default value (30 mins) . For better communication with the global community, we require En...