簡體   English   中英

React.js中的初始化器?

[英]Initializers in React.js?

我在使用react 0.13.1 react-railsbrowserify-railsrails 4.2.1應用程序中使用react 0.13.1 我不是在做單頁應用程序,而是在渲染頁面上添加react組件並使用rails路由系統。

當我加載頁面時,我想初始化一些東西,但我不確定這段代碼應該去哪里。 react是否有一個初始化函數,它總是在渲染組件之前調用,或者它是否總是先渲染第一個組件,這樣我才能將初始化代碼添加到第一個組件?

我如何將react初始化程序代碼放在我的多頁面rails應用程序中? (應該適用於客戶端或服務器呈現的react代碼)

注意:假設只有react和普通的javascript被使用。

編輯:不詢問有關每個組件的初始化,而是在頁面加載后初始化代碼,但在反應開始通過並呈現任何組件之前。

初始化React的入口點是對React.render()的調用,因此您應該在該調用之前執行任何初始化。 如果初始化是異步的,只需在回調中調用React.render()

並且每個組件上還有componentWillMount方法,可用於特定於組件的初始化。

是的,它在React的文檔中都有。 每個組件都有一個getInitialState,在首次請求對象時調用,然后在卸載組件時有oncompentdidmount和另一個組件。 它是所有JavaScript代碼,因此初始化代碼可以在每個組件內部完成,或者只是在執行React代碼之前或之后全局聲明。

我和Django有類似的設置,我使用Django的優勢。 路由,會話,身份驗證,Rest API等......讓Django渲染一個加載React UI的條形骨骼模板。 這個過程看起來效果非常好,它從以前的位置大大加快了我的網站,並且UI非常棒。

所以在我的django應用程序的一個特例中,我需要在React組件嘗試渲染自己之前初始化某些數據。 因此,我將初始化代碼包裝到一個在頁面加載時調用的函數中,然后在該函數完成后作為回調我調用另一個實際上將我的反應組件添加到頁面的函數。 從那里開始,每個組件都有自己的初始化,你說你現在對它不感興趣,但這就是我處理這種情況的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM