Reapp——使用React開發混搭移動應用

本文作者最近分析瞭一些 MongoDB 的性能問題,發現 MongoDB 自帶的 Explain 有很強大的分析功能。根據 Explain 的運行結果可以得到 find 語句執行過程中每一個步驟的執行時間以及掃描 Document 所使用得索引細節。作者將根據幾個具體的場景來分析如何利用 explain 瞭解語句執行的效率,如何通過創建索引提高 find 語句的性能。




作為一名工程師,我可以理解大傢的心情,我們都是熱愛嘗試新技術、拋棄過時技術的人。但是首先得明確,到底技術是不是過時的,還是僅僅是你認為它過時瞭。這篇文章我想談談我對技術選型的理解。 這篇文章不僅僅是寫給工程師,更多是寫給技術團隊負責人(大多數也是從工程師升職上去的,起初思維和工程師差距不大),因為你們具體負責技術選型的方向、方法、過程、結論明確。

兒童雞精


本期主要內容:構建商業AI能力的五大要素;判別AI改造企業的70個指標;用最小成本 驗證AI可行性;企業技術人員如何向人工智能靠攏?打造基於機器學習的推薦系統;打造機器學習的基礎架構平臺;如何解決特征工程;人工智能的下一個技術風口與商業風口。

懷孕滴雞精


《SAFe Distilled》一書將復雜的框架分解成易於理解的解釋和可操作的指南,從中我們可以深入理解及學習如何實現“大規模敏捷框架(Scaled Agile Framework)”。




從構建階段到傳輸至生產運行階段,容器在每個階段都面臨著安全風險。容器防護需要在整個棧及部署過程中引入一種分層安全策略。




過去的兩周時間裡,圍繞Facebook發佈React Native(一個能夠借助JavaScript開發原生移動應用的React.js擴展)的相關熱點鋪天蓋地。而其中的熱點之一就是Reapp向React愛好者們推出的一個移動應用開發的替代方案。

React是一個構建用戶界面的客戶端JavaScript框架,由Facebook最初開發並開源。React使用一個稱為JSX的聲明式語法和JavaScript語法擴展來描述HTML佈局。每個React組件都通過屬性和狀態得以支持和配置,對它們的改變將通過單向數據流觸發更新。這些更新是通過虛擬DOM優化的,它區別對待不同的組件,確保隻有狀態變換導致的那些修改才得到刷新。

表面上,Reapp與React Native有著驚人的相似之處,二者都使用React來創建應用程序用戶界面的框架。然而,在底層機制上這兩個框架之間卻具有明顯的哲學差異。React Native 將React組件綁定到原生UI控件中,構建與設備操作系統匹配的界面。而Reapp卻是將React組件綁定到一個跨平臺的UI-Kit來創建混搭應用。

讀者可通過該項目的Kitchen Sink樣例應用來感受Reapp UI-Kit的表現力與強大。特別是該應用的 Mailbox 效果,它展示瞭基於UI-Kit的Reapp及其React如何用於快速定義郵箱風格的用戶界面:

var Mailbox = React.createClass({

rend台中滴雞精哪裡買er() {

return (

div>

SearchBar defaultValue="" />

List styles={{

self: {

paddingLeft: 25

ListItem

title="Erinn Silsby"

titleAfter="8:45 PM"

titleSub="New messages from Jane Doe really long title should ellipse"

Lorem ipsume dolor sit amet, consectetur adipiscing

elit. Nulla sagittis tellus ut turpis condimentium,

ursula major sagittis.

/ListItem>

ListItem

title="Phebe Matz"

titleAfter="8:45 PM"

titleSub="New messages from Jane Doe really long title should ellipse"

Lorem ipsume dolor sit amet, consectetur adipiscing

elit. Nulla sagittis tellus ut turpis condimentium,

ursula major sagittis.

/ListItem>

ListItem

title="Derek Boulware"

titleAfter="8:45 PM"

titleSub="New messages from Jane Doe really long title should ellipse"

Lorem ipsume dolor sit amet, consectetur adipiscing

elit. Nulla sagittis tellus ut turpis condimentium,

ursula major sagittis.

/ListItem>

ListItem

title="Samantha Canor"

titleAfter="8:45 PM"

titleSub="New messages from Jane Doe really long title should ellipse"

// ... truncated for readability ...

// ... complete code sample available at https://github.com/reapp/kitchen-sink/blob/master/app/components/kitchen/Mailbox.jsx

/List>

/div>



上述代碼片段舉例說明瞭一個自定義郵箱組件如何通過三個Reapp UI-Kit組件——List、ListItem以及SearchBar——快速搭建而成。通過Kitchen Sink樣例應用的在線版本可查看生成的用戶界面。

然而Reapp並非隻是一個帶有React編程接口的UI工具套件,它還提供瞭其他處理非UI關註功能的組合包:

reapp-routes——用來生成對象樹的模塊,這些對象代表路由或文件路徑;

reapp-component——支持裝飾模式和工廠模式的依賴註入模塊;

reapp-ui——包含UI-Kit;UI-Kit是一整套React組件,通過主題支持動畫和換膚,以允許平臺特定風格。所有可用的UI組件都在Reapp站點列出。

Reapp的目標是通過合並大量主流JavaScript庫來最大化開發者的生產效率。為瞭簡化依賴管理,Reapp包含瞭Webpack模塊綁定器,其使用“代碼拆分”來優化在運行時要加載的依賴。另外,Reapp還捆綁瞭日益流行的6To5轉譯器,其允許開發者用ES6語法編寫JavaScript代碼,但轉譯成ES5語法,保持兼容性的同時最大限度提高開發效率。

Reapp框架的alpha版本已提供使用,並可通過npm安裝。其同時是一個開源項目,源代碼放在GitHub上。

隨著該項目發佈alpha版本,開發人員也發佈瞭兩個樣例項目,以演示其功能和用法。Hacker News樣例程序是一個功能完整的HackerNews軟件新聞網站客戶端應用,Kitchen Sink樣例程序演示瞭Reapp UI-Kit的功能。這兩個樣例程序的源代碼都可以通過Reapp Github倉庫獲取。

查看英文原文:Reapp - Hybrid Mobile App Development Using React

感謝馬國耀對本文的審校。

給InfoQ中文站投稿或者參與內容翻譯工作,請郵件至editors@cn.infoq.com。也歡迎大傢通過新浪微博(@InfoQ)或者騰訊微博(@InfoQ)關註我們,並與我們的編輯和其他讀者朋友交流。


您需要 註冊一個InfoQ賬號 或者

孕婦滴雞精 登錄 才能進行評論。在您完成註冊後還需要進行一些設置。

獲得來自InfoQ的更多體驗。






我們發現您在使用ad blocker。

我們理解您使用ad blocker的初衷,但為瞭保證InfoQ能夠繼續以免費方式為您服務,我們需要您的支持。InfoQ絕不會在未經您許可的情況下將您的數據提供給第三方。我們僅將其用於向讀者發送相關廣告內容。請您將InfoQ添加至白名單,感謝您的理解與支持。

雞精禮盒

台灣電動床工廠 電動床

台灣電動床工廠 電動床

AUGI SPORTS|重機車靴|重機車靴推薦|重機專用車靴|重機防摔鞋|重機防摔鞋推薦|重機防摔鞋

AUGI SPORTS|augisports|racing boots|urban boots|motorcycle boots

文章標籤
創作者介紹

粉粉的採購名單

nsu500g1m1 發表在 痞客邦 PIXNET 留言(0) 人氣()