跳到主要內容

【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 台灣」與一起討論喔!

留言

這個網誌中的熱門文章

COSCUP 2020 CfP is now open, submit your proposal before May 11th, 2020.

We are looking for talks in several open-source related areas, please submit your proposal before May 11th, 2020. After the review process from the coordinators, we will publish the full programme in early June.一如往常,在今年的 COSCUP 我們徵求各式各樣不同的 Open Source 相關稿件。請於 5 月 11 日前投稿,或可參考本頁下方各議程軌資訊。Submit your proposalImportant DatesSubmission deadline: May 11th, 2020 (截稿時間)Full programme published: Early June (預定公佈時間)COSCUP 2020: Aug 1-2 (with welcome party at July 31st night), at National Taiwan University of Science and TechnologyTracksQMK Keyboarder / 鍵人谷Open Source ChatbotLet's Read the Source Code / 帶您讀源碼MySQL Open Space / 開放 MySQL 開放空間Cloud Native HubBSDArch Linux & ArchersEnter the FLOSS World / 開源新手村Open Source AI: Human-like & Trustworthy AI / AI 開源:更有智慧與可信賴的 AIEffective GoJulia LanguageMyDataCOSCUP StartupsCOSCUP EnterprisesOpen Source DesignOpen Source EducationPostgreSQLRubyEverything in RustBlockchain and Distributed LedgerOpenStreetMap x WikidataEmbedded Linux / 嵌入式 Linu…

2020!前夜派對!Open source and wine!Welcome Party!

喝! 年會前夜的交流派對,來與大會講者、社群同好一起喝酒聊天!Join the Party, have fun with the speakers and your beloved FLOSS community members!會場有什麼? / What will we have at the party?當日精選的 MIT 掌門精釀啤酒 (也有無酒精飲料)
Beer! For people who don't like alcohol, the bar also provides soft drinks.下酒點心 Snacks200 坪空中花園派對,可以直接看到台北 101!美景與美酒,絕配!
Awesome view, believe me! Just check the photos from Google Maps.最重要的是:與熱愛開源的大會講者與社群同好交流的最佳活動!
Lots of FLOSS folks!注意事項 / Note由於防疫期間,必須完成健康聲明表才可以進場。
Every participant should fill out the Personal Health Declaration Form. After filling out the form, you will get your personal QR-Code and CODE NUMBER that will be used in our physical events.會場食物為下酒菜,數量有限,建議吃過正餐再來!
Please have your dinner before the party, we only prepare party appetizers.低消為 $200 元。
The minimum order is NTD$200.不用報名,自由參加。
Please feel free to join Welcome Party, no matter what you come to COSCUP2020 or not.講者與贊助商請找社群協調人贊助組領取酒券。
If you are the speaker or sponsor, please contact your community coordinator or the Sponsorship Tea…

COSCUP 2020 Call for Participation -- now open! 議程軌與攤位即日起開放申請

Photo by Jaime Lopes on UnsplashLadies and gentlemen, time to apply for a COSCUP 2020 community track/booth! 快速跳到中文版TracksCommunity Tracks are assigned to self-organizing groups to work, share, and discuss issues around an open-source-related topic. The application should be submitted before March 30th.You can decide the content and format in your Track.You can decide the duration of each section and the whole schedule in your Track.Key datesMarch 30th: Deadline for Track applicationsApril 10th: Track coordinators provide information of Call for ProposalApril 13 April 20th: Call for Proposal starts (Update: We've postponed the CfP start date to April 20th.)May 11th: Deadline for Call for ProposalLate-May: Track coordinators provide the complete scheduleEarly June: Full schedule published on COSCUP.org (TBC)August 1-2 at Taipei: COSCUP 2020Application rulesScheduleWe do not plan for rooms to be empty during the event. By applying for a Track you are making a commitment to fill th…