1

私はバックボーン マリオネットをしばらく見ていて、自分の純粋なバックボーン アプリケーションのためにその一部を模倣してきました。非常に有望に見えますが、よくわからないことの 1 つは、モジュールの構造と初期化子が実行される順序です。主にBackbone.history.start

、などのApplicationモジュールを含む最上位レベルを作成しようと考えています(通常、フレームワークを試すために単純な todo アプリから始めます)。各モジュールには独自のルートがあります。私の理解では、私が行う前にそれらを初期化する必要があります。すべてのモジュールをトリガーして最上位レベルで開始し、履歴を開始するだけですか? これにより、起動前にモジュール ルータが確実に初期化されます。これは、潜在的に不要なモジュールを開始しているように聞こえるため、アプリの速度が低下しますか?AuthTodoCommentsBackbone.history.start()ApplicationBackbone.history

もちろん、私が知っているほとんどのアプリは、それほど大きくする必要はありません。起動速度はおそらく許容範囲内です。ただし、ベストプラクティスまたは推奨事項は何ですか

4

1 に答える 1

2

モジュールはデフォルトで親アプリケーションから始まりますが、これをオーバーライドできます:

サブモジュールは、startWithParent を false に設定することで、この動作をオーバーライドできます。これにより、親の開始呼び出しによって開始されなくなります。

MyApp.MyModule.start()その後、いつでも手動で呼び出すことができます。

を呼び出すとApplication.start()、モジュールは逆の順序で実行されます。ドキュメントから:

サブモジュールの開始は、深さ優先の階層トラバーサルで行われます。つまり、Foo.Bar.Baz の階層は、最初に Baz、次に Bar、最後に `Foo.

アプリケーションでインスタンス化された少なくとも 1 つのルーターを使用して、を呼び出しBackbone.history.start()た後に呼び出す必要があります。Application.start()呼び出し後に追加のルーターをインスタンス化するのに問題はないはずですBackbone.history.start()(少なくともBB.Marionette の Derick Bailey からのこの回答によると) 。

于 2012-10-28T01:49:44.697 に答える