WordPress 探索了一種與 JavaScript 框架無關的方法來構建 Gutenberg 塊

已發表: 2017-09-23
圖片來源:found_drama E. 的海盜小鎮——(許可證)

在下週的會議之前,關於 WordPress 的 JavaScript 框架選擇的討論將在#core-js Slack 頻道中繼續進行。 最近的主題之一是 Gutenberg 的框架無關塊渲染的可能性,這將允許開發人員使用他們喜歡的任何 JS 庫來擴展新的編輯器。 這意味著 Gutenberg 塊(俗稱“Gutenblocks”)可以使用 Vue、React、Preact、Angular 或任何開發人員覺得舒服的方式構建。

這個想法的支持者認為,追求更靈活的方法會使 WordPress 的核心 JS 框架決策變得不那麼重要。 在#core-js 頻道上回答問題時,Gary Pendergast 解釋瞭如何構建 Gutenberg 以保持分離。

“當我說這個決定無關緊要時,我真的不是在開玩笑,即使對於為古騰堡做出貢獻的人來說也是如此,”彭德加斯特說。 “在 #2463 中,該庫完全被視為實用程序庫,就像我們使用 lodash 一樣。 它執行少量任務,並且可以相對容易地取出並用完全不同的東西替換,而不會中斷代碼庫的其餘部分。 對於為 Gutenberg 做出貢獻的人來說,他們貢獻的是 Gutenberg 編碼風格,而不是我們碰巧導入的任何庫的風格。”

當被問及何時做出決定以及考慮哪些因素的時間表時,Pendergast 回答說沒有時間表,有興趣參與的人應該在博客上講述他們的經歷並寫下他們可以使用他們的 JS 框架構建的東西的示例熟悉。

“既沒有路線圖,也沒有時間表,也不需要,”彭德加斯特說。 “正如 Matt 提到的,這實際上只是一個技術決定——對於更廣泛的社區來說,重要的決定是選擇‘不 React’。 不幸的是,這個決定被誇大了,並且與“我可以用什麼 JS 庫來構建我的插件?”嚴重混為一談。 有時“Gutenberg 塊將類似於 JS 庫的實踐?”兩者都不相關。 將其視為賽馬的推文和帖子以這種方式沒有幫助。”

Pendergast 說,無論選擇什麼庫,都將“繼續被 WordPress 元素包裝,不會暴露底層庫”。 Gutenberg 團隊正在努力從其組件中刪除所有庫依賴項,以便插件開發人員可以使用他們選擇的任何庫。

但是,其他社區成員並不那麼急於將選擇作為核心的 JS 庫降級為簡單的技術決策或實用程序庫。

“大多數開發人員都明白,他們的插件不受為 core/Gutenberg 選擇的框架的約束,”Kevin Hoffman 說。 “但這並沒有削弱這個決定的重要性。 如果我們想鼓勵更多的貢獻者,我們最好選擇一個讓絕大多數人感到有能力和自信的框架。 如果大多數人都在用一個框架開發插件,並且必須學習另一個框架才能為核心做出貢獻,那麼我們就會限制潛在貢獻者的數量。”

Peter Booker 認為,無論 Gutenberg 的分離多麼優雅,對核心庫的正確理解都會影響開發人員深入解決某些問題的能力。

布克說:“我認為我們不應該對這個選擇如此不屑一顧,因為這是一個次要的技術決定。” “了解 PHP、JavaScript 和 Backbone(以及其他東西)的工作原理對於正確調試 WordPress 問題至關重要。 為 Gutenberg 選擇的 JS 框架將影響很多人,即使我們不是核心貢獻者。 能夠全面解決問題將是必不可少的知識。 這個決定將影響更多的人,而不僅僅是古騰堡團隊。”

提供一種靈活的、與框架無關的方法來構建 Gutenblocks 意味著什麼?

Jason Bahl 詢問是否有人嘗試將 React、Preact、Vue 和 Angular 混合在一個應用程序中,看看它是否是“性能噩夢的秘訣”。 他提出了一個示例場景,其中 Gravity Forms 構建基於 Vue 的 Gutenblocks,Yoast 具有基於 React 的塊,WooCommerce 使用 Preact 構建塊,另一個插件使用 Ember。

Bahl 說:“靈活並允許人們使用任何東西聽起來不錯,但也可能會導致最佳實踐的大量分歧,以及潛在的性能問題。” “我們將看到如何在 Vue、React、Preact、Ember、Vanilla JS 等中構建 Gutenblocks 的教程彈出,這看起來很酷,但也令人困惑,並可能導致社區中的進一步分歧和公認的最佳實踐. 靈活性在一定程度上很好,但在一定程度上有強烈的意見也很好。”

Gravity Forms 的聯合創始人 Carl Hancock 認為,提供一種與框架無關的方法來構建 Gutenblocks 對擴展項目的開發人員幾乎沒有影響。 不能通過提供更大的靈活性來降低決定的重要性,因為開發人員將不可避免地採用 WordPress 核心使用的任何內容。

“儘管有些人聲稱彩虹和蝴蝶與創建抽象層有關,以便插件/主題開發人員可以使用他們想要的任何東西,但人們最終會在大多數情況下採用任何核心用途,”漢考克說。 “這意味著核心框架最終變得多麼複雜,將對插件和主題開發人員的進入壁壘產生直接影響。 迄今為止,進入門檻一直處於歷史低位,並且直接促成了 WordPress 作為自託管 CMS 的發展。 大幅提高進入門檻並不一定是壞事。 例如,Gravity Forms 將使用 Preact、Vue 等,因為我們有足夠的人力和技能來這樣做,因為一旦核心做出決定,我們就可以最終決定這樣做。”

WordPress 推動網絡發展的機會

據 W3 Techs 稱,WordPress 目前為 28% 的網站提供支持,無論它選擇什麼框架,都會對許多開發人員決定學習哪個庫產生重大影響,以擴展軟件並推進他們的職業生涯。

Matias Ventura 是 Gutenberg 項目的技術負責人之一,他鼓勵討論的參與者放眼大局,並抓住機會共同合作,共同開發一個將推動網絡發展的 WordPress 解決方案。 該團隊與來自競爭框架的代表合作的努力在一個通常分散且易怒的生態系統中脫穎而出。

“我很高興我們有機會在 JavaScript UI 表示方面推進 Web 開發,這與過去十年 WordPress 如何成為 Web 標準的驅動力類似,”Ventura 說。 “這也是我認為我們作為一個項目有責任的地方,因為人們將繼續通過 WP 學習 Web 開發。 許多人通過 WordPress 接觸 PHP,最初只是與 WP 函數和 API 交互,最終根據需要更深入地研究該語言。 我確實看到我們的核心仍然接近於 JS 這種語言,因為它提供了最有意義的學習工具,跨越所有框架和庫。”

文圖拉向正在進行的討論中的參與者保證,古騰堡團隊正在傾聽並努力製定一個能夠推動網絡向前發展的解決方案。

“我們完全清楚,我們如何構建以及通過 Gutenberg 提供的內容將影響開發社區,我們不會掉以輕心——恰恰相反,”文圖拉說。 “我一直在與 Evan (Vue) 和 Jason (Preact) 交談,因為這似乎是一個合作並推動網絡向前發展的機會,而不是‘選擇你的框架’競賽。”