iT邦幫忙

2025 iThome 鐵人賽

DAY 7
0
Modern Web

WordPress核心全端開發實戰 系列 第 7

WordPress區塊編輯器(Block Editor)原理與它與React的關係

  • 分享至 

  • xImage
  •  

WordPress區塊編輯器(Block Editor)原理與它與React的關係
自從WordPress5.0起,區塊編輯器(Gutenberg)取代了傳統的編輯器,改變了整個內容創作流程。它的背後其實是一個用React打造的前端應用,這讓WordPress不再只是PHP的天下,也讓開發者有更多操作UI的彈性。

區塊(Block)是什麼?
在Gutenberg裡,文章的每一個段落、圖片、清單、按鈕...全部都是「區塊」。每一種區塊都有它的結構、屬性和呈現方式,你可以把它想像成樂高積木,透過拖拉、組合就能排出想要的內容。

每個區塊都是一個「元件」,而這些元件本身就是用React寫的。這意味著區塊可以有自己的狀態(state)、屬性(props)和生命週期(lifecycle),可以互相溝通,也可以封裝邏輯,這跟你在開發React應用的時候很像。

React扮演的角色
WordPress使用React的原因很明確:它需要一個可以即時渲染、狀態管理清晰、可以擴充的UI框架。而React剛好就符合這些特性。

例如,當你編輯一個段落區塊,React會負責更新該段落的內容,同步更新到畫面上。你在邊打字的時候,實際上就是在操作一個React Component的state,然後React會幫你重新渲染畫面上的內容。這種即時性,是傳統PHP渲染頁面很難做到的。

開發者如何建立自己的區塊?
WordPress提供了@wordpress/create-block這個官方CLI工具,幫助你快速建立一個區塊開發環境。你寫的區塊基本上會包含以下幾個部分:

edit():決定在編輯器裡看到的內容

save():定義儲存到資料庫後的HTML結構

attributes:區塊的屬性,用來保存資料

React Hooks(例如useState、useEffect):用來控制互動邏輯

這些都會被打包成JavaScript程式碼,透過Webpack和Babel處理,最後在WordPress後台被加載使用。

結論
WordPress的區塊編輯器其實就是一個React App。每一個區塊都是一個React Component,負責內容的輸入、渲染與儲存。這個結構不僅讓前端操作更順暢,也讓開發者能用現代化的JS技術開發WordPress功能。對於熟悉React的開發者來說,Gutenberg是一個熟悉又強大的開發場域;對於只懂PHP的傳統開發者來說,這則是一個很好的進步契機。


上一篇
WordPress Debug Mode 偵錯模式
系列文
WordPress核心全端開發實戰 7
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言