![](/img/trans.png)
[英]ROR:How can I get the params from controller without reloading the browser?
[英]Can I edit React components without reloading the browser?
如果React提供DOM協調, 是否可以動態重新加載組件的代碼並在編輯后重新呈現它?
我正在尋找一種解決方案,允許我編輯JSX文件,保存它,並讓組件在瀏覽器中自行更新,無需重新加載頁面,卸載它或丟失其狀態。
理想情況下,這應該沒有瀏覽器插件。
您可以使用react-hot-loader ,這是一個嵌入式Webpack加載器,可以為項目中的React組件進行實時編輯。 無需瀏覽器插件或IDE掛鈎。
它將Webpack 熱模塊替換 (HMR)與React結合在一起。
你可以使用這個:
這個怎么運作:
React.createClass
調用更改為特殊的createClass
和updateClass
函數, updateClass
函數存儲組件的原型,然后用新版本更新它 ; forceUpdate
重新渲染組件。 有一個演示視頻 ,一個解釋性博客文章和一個React教程應用程序分叉,配置了實時編輯 。
這都是香草JS。
您可以,我創建了一個示例項目,演示如何使用ES5和RequireJS為自己創建這些工具 - 它可以與React和Backbone一起使用 - 只要您使用AMD模塊和RequireJS,它就可以與Angular和Ember等一起使用。
以下是所有信息: https : //medium.com/@the1mills/hot-reloading-with-react-requirejs-7b2aa6cb06e1
基本步驟是:
gulp.js觀察者監聽文件系統的變化
gulpfile中的socket.io服務器向所有瀏覽器客戶端發送一條消息,其中包含已更改文件的路徑
客戶端刪除表示該文件/模塊的緩存,並重新需要它(使用AJAX將其從服務器文件系統中拉出)
前端應用程序被配置/設計為重新評估它希望熱重載的模塊的所有引用,在這種情況下,只有JS視圖,模板和CSS可用於熱重新加載 - 路由器,控制器,數據存儲區不是配置了。 我懷疑所有文件都可以熱重新加載,唯一的例外是數據存儲。
您可以在此處查看示例項目: https : //github.com/ORESoftware/hr4R
但我建議先閱讀上面的文章。
與使用Babel / ES6和React-Hot-Loader相比,這是一個更簡單的DIY重新加載實現。
Webpack主要不是為熱重新加載而設計的 - 如果是,熱重新加載將不再是實驗性功能,也不會使用輪詢來查看文件系統差異,它目前正在進行(參見我的文章)。
如果你考慮的話,RequireJS / AMD規范基本上是用於熱重新加載的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.