2
A
回答
14
不。React.js和Ractive.js有許多相似之處(例如,兩者都是通過在內存中構造一個輕量級虛擬DOM來實現的),但它們有一個非常大的區別--React完全拒絕了模板的想法。
也就是說JSX 不是模板語言,它看起來就像一個!在反應過來,如果你有這樣的事情......
<h1>Hello world!</h1>
...它就會被JSX預處理器轉換爲這樣的事情:
React.DOM.h1(null, 'Hello world!');
換句話說JSX描述的功能,而不是模板。相比之下,在Ractive中,Mustache模板被解析爲可以作爲JSON傳輸的樹狀結構。
現在,在這個例子的情況下,它其實並不重要原始字符串經過什麼樣的過程 - 它仍然要結束了在某處的瀏覽器<h1>
元素。但是當你開始引入任意引用this.state
和this.props
的JavaScript時會變得更加困難 - 這些東西可以改變React中組件的基本結構,但在Ractive中沒有意義。
Ractive未來可能會支持除Moustache之外的模板語言,但JSX不太可能成爲其中的一種,因爲它們有不同的方法和設計目標。
但是,這裏有一個相關的問題,它能夠在單個文件中完整地描述組件。發生了一些ongoing work - 最可能的情況是,我們將能夠在.html文件中描述組件(因爲您可以在HTML內使用JavaScript和CSS)而不是將模板寫入您的.js文件。
相關問題
- 1. RactiveJS和的preventDefault上肘節
- 2. 如何在RactiveJS
- 3. RactiveJS和時間條件的DOM
- 4. ractivejs部件嵌套
- 5. React.js和jsx over ejs?
- 6. RactiveJS模板條件HTML
- 7. 是RactiveJS 0.5向後兼容?
- 8. RactiveJS on-enter插件丟失
- 9. Ractivejs:如何獲得鑑於
- 10. RactiveJS拖動利用的MouseEvent
- 11. JSX react/jsx-curly-spacing IntelliJ
- 12. JSX:二JSX之間差集
- 13. React JSX和FirstSibling或FirstChild
- 14. React JSX組件和等待
- 15. 在JSX
- 16. 與RactiveJS和Firebase進行三路數據綁定
- 17. ractivejs中的「runtime version」和「version」有什麼區別?
- 18. ractivejs列表排序,升序支持?
- 19. 與RactiveJS無線電輸入列表
- 20. 使用ajax更改組件。 (Ractivejs)
- 21. 如何更改RactiveJs區域設置
- 22. 如何刪除一個ractivejs對象
- 23. Ractivejs - 如何關閉滑蓋自來水
- 24. 如何配置Electron,Webpack,Babel,React和JSX?
- 25. AJAX和JSX有什麼區別?
- 26. 將React和.jsx與Electron一起使用
- 27. 瞭解es6和jsx的反應
- 28. Flask和Reactjs拋出JSX變換錯誤
- 29. JSX描述Facebook和打字稿文檔
- 30. jsx中的Javascript
您的意思是[JSX](http://jsx.github.io/),編譯爲JavaScript的語言或[JSX](http://facebook.github.io/react/docs/jsx- in-depth.html),React.js的預處理器?其中一個關注強類型,另一個關注在js源代碼中編寫UI組件標記。 –
爲了澄清,JSX預處理了React.js,以便您可以使用js源代碼中的模板。 – Joel
閱讀此博客文章... http://blog.ractivejs.org/posts/whats-the-difference-between-react-and-ractive/ –