精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

Pinterest轉向通用JavaScript和React

責任編輯:editor004

作者:David Iffland

2016-12-06 11:34:10

摘自:INFOQ

在2015年,Pinterest決定轉向React。但是對于一個有數百萬活躍用戶的站點來說,談何容易。Pinterest轉向React的故事本質上是Pinterest轉向通用JavaScript的故事。

在2015年,Pinterest決定轉向React。但是對于一個有數百萬活躍用戶的站點來說,談何容易。Pinterest轉向React的故事本質上是Pinterest轉向通用JavaScript的故事。

Pinterest的軟件工程師Imad Elyafi寫道,決定轉向React的部分原因是React是“黃金標準”,有著“龐大的開發者社區”以及它“能極大地提升工程效率和質量”。React通常用在通用JavaScript場景下,在此服務器和瀏覽器使用同一類模板。

Pinterest的服務器端引擎是Django,它使用Jinja模板引擎。然而,Pinterest的客戶端的JavaScript使用Nunjucks,它的靈感來源于Jinja,也與之相似。這導致了代碼的重復,一份Python版和一份JavaScript版。但是他們無法拋棄一切而轉向React,Pinterest的軟件工程師Jessica Chan說道。

我們需要一個方案,能讓我們在不打斷產品組工作和影響用戶體驗的情況下,迭代地轉換數以百計的Pinterest構件。第一步就是要將客戶端和服務器端統一到單一的模板渲染引擎,然后再將引擎替換掉。如果服務器能解釋JavaScript,使用Nunjucks渲染模板以及共享客戶端代碼,我們就能進行迭代遷移到React。

在觸及React之前,該團隊重新設計了服務器渲染引擎的架構以使用現成的Nunjucks模板。Jessica Chan說,他們沒有在Django的內部渲染Jinja模板,而是創建了一個進程使用Node來渲染模板。“最終,我們在Nginx代理層后使用常駐的Node進程,將接口架構設計為每一個網絡請求都是無狀態的渲染過程。我們因此能將請求分發到這些進程組,并在需要的時候擴展進程數。”

一旦該系統上線,他們就能慢慢轉向基于React的組件渲染模式。Elyafi說只要可能他們都擴展Nunjucks模板語言來渲染React。

{% if in_react %} {{ component('MyReactComponent', {pinId: '123'}) }}{% else %} {{ module('MyDenzelComponent', pinId='123') }}{% endif %}

component關鍵字告訴模板引擎應該使用基于React的組件,而不是基于Nunjucks的。Pinterest轉向React的努力還在繼續。

查看英文原文:Pinterest's Switch to Universal JavaScript and React

鏈接已復制,快去分享吧

企業網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 安西县| 青岛市| 景宁| 化隆| 武胜县| 上高县| 日土县| 奇台县| 乾安县| 东山县| 永定县| 阿巴嘎旗| 佳木斯市| 马关县| 龙泉市| 临泽县| 信宜市| 海兴县| 南康市| 韶关市| 水富县| 新竹市| 南涧| 高雄县| 宿松县| 岱山县| 弋阳县| 顺昌县| 杭锦旗| 阜新| 思茅市| 休宁县| 安国市| 白水县| 巴东县| 五寨县| 兖州市| 阜康市| 福海县| 达拉特旗| 太仓市|