Chrome v80 發佈:針對 Worker 的 JS 模塊支持

  • 2020 年 2 月 18 日
  • 筆記

每日前端夜話第278篇

翻譯:瘋狂的技術宅

作者:Tobias Uhlig

來源:medium

正文共:820 字

預計閱讀時間:5分鐘

Google 於 2020 年 2 月 4 日星期二發佈了 Chrome v80。我一直在等待這個特定版本的發佈,它是過去很長時間以來發佈的最重要的主要版本。

Chrome平台狀態 www.chromestatus.com

(https://www.chromestatus.com/features/schedule)

什麼是 Javascript 模塊?

一旦使用 ES6+ 的類系統,你很可能會自動使用 JS 模塊:

如果你堅持「每個文件1個類」的設計模式,則很可能要導入擴展的基類。你也很可能希望在文件末尾導出新類。一旦使用 import 或 export 語句,你的文件就已經被視為 JS 模塊。

JS 模塊可以直接在瀏覽器中運行嗎?

在主線程內部,這已經在 Chrome,Firefox 和 Safari 中成為可能。在 Chrome 瀏覽器中使用 Web Worker 內部的 JS 模塊已經有相當長的一段時間了,但是隱藏在實驗性標記的後面。現在有了 Chrome v80,終於可以直接使用了。

註:此舉會大大拉開 Chrome 與其他瀏覽器之間的距離。遺憾的是,儘管 FF 和 Safari 開發團隊已經將此功能計劃公開了好幾年,但是優先級很低。

如何從 JS 模塊創建 worker?

這由你決定。如果你想將 js 模塊文件命名為 .mjs.js,請添加類型:module 是實現此目的的關鍵。

直接在瀏覽器內部使用 JS 模塊有什麼好處?

你可以創建結構良好的程序,並在瀏覽器中運行它們,而無需任何與 JS 相關的構建過程。這意味着你可以更改源代碼,而只是重新加載瀏覽器頁面,而無需 Webkit 監視文件更改和模塊的熱更換。

已經有由 Web Worker 驅動的 JS UI 框架了嗎?

是的,neo.mjs 於 2019 年 11 月 23 日向公眾發佈。

倉庫:

https://github.com/neomjs/neo

在線示例:

https://neomjs.github.io/pages/

接下來是什麼?

如果你查看了發佈時間表,可能已經注意到 Chrome v81 計劃於 3 月 17 日發佈。此版本將包括對共享 woker 的 JS 模塊支持。這是製作多瀏覽器窗口應用(例如可以在多個屏幕上運行的應用程序)的關鍵。

原文:https://medium.com/@tobiasuhlig/chrome-v80-release-js-module-support-for-workers-a4a9397d194b