JavaScript 模組超進化 從工業革命到文藝復興

me
林彥成
2024-10-03 | 4 min.
文章目錄
  1. 1. JavaScript 的單線程特性
  2. 2. React.js 的誕生:前端的工業革命
  3. 3. ESM 的出現:即時載入元件的可能性
    1. 3.1. ESM 的特點
    2. 3.2. Module Federation
    3. 3.3. Web Components
    4. 3.4. 現代瀏覽器支持與 LLM 的協同影響
    5. 3.5. LLM 與生成式人工智慧的影響:前端的文藝復興
  4. 4. Javascript 模組的未來

JavaScript 模組超進化,從沒有元件概念的開端,到 React 引入的元件化概念,開始了大前端時代的工業革命時代,也是那個時候開始,有了專職的前端工程師職位,也才有各位大大們現在認識的小編。

隨後是 Module Federation 的靈活性、ESM 的即時載入功能、瀏覽器支援遠端載入的技術,這一切都是技術進步的積累,也大大提高了大家對於前端工程的想像,當然這也直接的反應到薪水的成長。

當代 LLM 和 Gen AI 的發展不僅提高了開發效率,也擺脫了過去的束縛開始有機會從遠端動態生成元件,因此能用更理性、科學的思想與行動方法極大擴展了創作的可能性,開始了大前端時代文藝復興。

小編認為,大前端的航海時代還會繼續下去,隨著世界科技的進步與普及從量變走向了質變,未來的工程師也許會漸漸轉變成哲學家也或著是藝術家,為了人們的滿足和幸福感而努力。

JavaScript 的單線程特性

JavaScript 作為一種單線程(Single Thread)的語言,意味著它在任何時刻只能處理一個任務。

在這樣的架構下,前端開發的歷程充滿挑戰,然而隨著技術的進步,這種限制開始逐漸被打破。

React.js 的誕生:前端的工業革命

最初,網頁應用開發缺乏元件的概念,直到 Facebook 推出了 React.js,這一切才開始改變。

React.js 引入了「元件」的概念,使得前端開發進入了一個全新的工業革命時代。

這種元件化的設計使得開發者能夠將大型應用拆解為小而可重用的元件,每個元件負責自己的狀態和渲染,從而提高了程式碼的可維護性與可讀性。

元件化的好處

  • 重用性:元件可以在不同的部分或項目中重複使用,這降低了重複勞動的需要。
  • 封裝性:每個元件都獨立管理自己的狀態和行為,減少了不同元件之間的相互影響,從而提高了程式碼的穩定性。
  • 便於測試:小型元件更容易進行單元測試,開發者可以快速發現和修復問題。

ESM 的出現:即時載入元件的可能性

隨著時間的推移,JavaScript 的模組系統進一步演化,尤其是 ESM(ECMAScript Modules)的出現,為前端開發帶來了革命性的變化。ESM 使得開發者能夠以簡單的語法來導入和導出模組,這樣的結構讓程式碼更為清晰且易於管理。

ESM 的特點

ESM:簡單的項目中,開發者可以直接使用 ESM 管理依賴,這使得開發流程更簡單。例如,在單頁應用中,使用 ESM 來組織和分割程式碼。

  • 語法簡潔:使用 import 和 export 關鍵字,開發者可以輕鬆地管理依賴。
  • 靜態分析:ESM 支援靜態分析工具,可以在編譯時檢查程式碼的正確性,提升開發效率。
  • 瀏覽器支援:現代瀏覽器原生支援 ESM,開發者無需額外的打包工具即可使用模組化的功能。
// module.js
export const greet = () => console.log("Hello, World!");

// main.js
import { greet } from "./module.js";
greet(); // Hello, World!

Module Federation

Module Federation,是 Webpack 4 引入的功能,允許多個應用共享模組,無論它們的版本或應用的大小如何。

這使得大型應用可以更靈活地互動。例如,應用 A 可以動態載入來自應用 B 的模組,無需重新編譯或打包。

Module Federation 適合大型應用或微前端架構的項目,允許不同的團隊在相同的應用中使用不同版本的模組而不產生衝突。

例如,在一個大型電商平台中,產品展示和購物車功能可以由不同的團隊維護,卻能無縫協作。

Web Components

Web Components,是一種建立可重用的自定義元素的標準。在開發 UI 元件庫時,Web Components 可以提供高度的重用性。例如,設計一個自定義的按鈕元件,這個按鈕可以在多個應用中使用,並且保持一致的外觀和行為。

Web Components 允許開發者創建自己的 HTML 標籤,這些標籤可以在任何框架或庫中使用。這對於創建可重用的 UI 元件特別有用,但需要額外的支持來處理瀏覽器的兼容性問題。

現代瀏覽器支持與 LLM 的協同影響

隨著現代瀏覽器原生支持透過 URL 載入 JavaScript 模組(ESM),開發者現在可以更方便地引入外部資源,實現模組化和動態載入的功能。這種即時載入的能力為整個開發生態系統注入了活力,尤其是在使用大型語言模型(LLM)和生成式人工智慧(Gen AI)時。

LLM 與生成式人工智慧的影響:前端的文藝復興

近年來,隨著大型語言模型(LLM)和生成式人工智慧(Gen AI)的崛起,元件的生成進一步變得動態且智能。開發者可以透過遠端載入的方式,讓元件更具適應性,這是否意味著前端的文藝復興?

Javascript 模組的未來

從無元件的開端,到 React 引入的元件化概念,再到需要編譯的過程,隨後是 ESM 的即時載入功能、Module Federation 的靈活性,直到瀏覽器支持遠端載入的技術,這一切都是技術進步的積累。如今,LLM 的應用使得我們能夠從遠端動態生成元件,這樣的發展不僅提高了開發效率,也極大擴展了創作的可能性。

實例:開發者可以使用 LLM 輸入「創建一個帶有動畫的按鈕元件」,然後 LLM 生成相應的元件程式碼,再透過 ESM 快速在應用中引入這個元件,實現快速迭代和實驗。

未來的潛力:這種結合不僅限於單一元件的創建,還可能演變成全新的開發模式,使開發者能夠專注於高層次的設計與邏輯,而將具體的實現細節交給智能工具。

總的來說,JavaScript 模組的演進不僅是技術的革新,更是思維的轉變。在這個大前端時代,未來仍然有許多驚喜在等待我們去探索,新的技術將不斷推動我們的創意,開創更多可能性。


喜歡這篇文章,請幫忙拍拍手喔 🤣


share