2017-03-06 5 views
2

callbackパラメータを有することがわかる。ReactDOM.renderコールバックで初期作業を行うことはできますか?

ReactDOM.render(element, container, [callback]); 

だから、私の考えは、多分私はそれにいくつかの初期作業を行うことができるということです。

それはすることができます。

は私のグローバル 状態を初期化するために、サーバーからデータをフェッチするためにグローバルなアクションを派遣します。

私の質問はできるだけ早くレンダリングさせたいと思っています。

静的コンテンツがレンダリングされた後、データを取得するためにajaxオペレータを実行します。

その仕事はありますか?または、これで何ができますかcallback params?ここ

は、私の場合です:今の

src/index.js

//some initial work 
//sync and async work. 
//... 

ReactDOM.render(<App/>, document.getElementById('app')) 

私の考えは、このようなsrc/index.jsを変更することです:

ReactDOM.render(<App/>, document.getElementById('app'),() => { 
    //some initial work 
    //sync work will block the html parse and render. 
    //my idea is let react component render as soon as possible 
}) 

私は私の考えが正しいか分かりませんない。お返事をありがとうございます。

編集

最初の仕事は、だけでなくajaxを意味cordovaまたは提供native client何かである可能性があります。

+0

フェッチはブロックしないでください。たぶんあなたはブロックする重い処理をしているかもしれませんが、これは作業者で行うことができます。 – Aaron

+1

componentDidMount()メソッドでデータを取得します。 – c0deNinja

+0

@ c0de忍者ええ、私はそれをすることができます。しかし、私は 'react-dom render callback'で何ができるのか知りたいですか? – novaline

答えて

2

これを使用しようとしているタスクには、render()メソッドコールバックを使用する必要はありません。 実際、このコールバックは初期化の要求を発行するためのものではありません。確かに、あなたは初期化が が行われたときに、いくつかの状態を設定する必要がある場合がある...

コメント以下の部分を編集し、コールバックにコンポーネントへのアクセスを持っていません。ReactDOMの私の個人的な見解では、コールバックをレンダリングこれはReactを他のライブラリ/フレームワークと統合するためにはほとんど役に立ちますが、Reactを認識していません。同様に、コンポーネントがDOMツリーで使用可能になるとすぐに、そのコンポーネントがレンダリングされるときにアクションを実行する必要があります。レンダリングコールバックが呼び出されると、コンポーネントがDOMにレンダリングされたことを確認できます。

あなたの場合、ルートコンポーネントを作成し、AJAX呼び出しを委任したいと思います。私はAppコンポーネントをレンダリングし、他のすべてのコンポーネントをレンダリングします。このAppコンポーネントでは、初期化をcomponentDidMountにします。

別のオプションは、コンテナコンポーネントを作成することです。単純なコンポーネントを「包む」ロジックを持つコンポーネントです。次に、以前のソリューションと同様にcomponentDidMountを実装します。

一部のインスピレーション:React AJAX best practices

+0

レンダリングコールバックは何のために良いですか?そこではどんなタイプのアクションが役に立ちますか? – jmargolisvt

+0

返信ありがとうございます。私はあなたの言ったことを知っています。ルートコンテナコンポーネント ' '。ええ、最近、私は 'index.js'から' '' componentDidMount'に私の初期の仕事を移そうとします。何かを見つけるために 'chrome'の' timeline'を見ていきます。 – novaline

+0

しかし、私はまだ 'react-dom'' render''' callback'をいつ使うべきか、どの場合にするべきかを知りたいと思います。 @jmargolisvtと同じです。 – novaline

関連する問題