2017-09-17 4 views
1

グローバルモデル、メッセージなどのすべてをそのまま残しておくと、elmプロジェクトでファイルを分割しようとしています。 これまでに試したことは次のとおりです。 enter image description hereELMプロジェクトのスケーリング:メッセージ/アップデートを分離する

したがって、いくつかのグローバルファイルがあり、次にヘッダーには独自のファイルがあります。グローバルビューにHeader.Viewをインポートするときしかし、私は、エラーを取得しておいてください。The 1st and 2nd entries in this list are different types of values.種類の理にかなって:

The 1st entry has this type: 
Html Header.Messages.Msg 

But the 2nd is: 
Html Msg 

だから、私の質問は(ヘッダーのようにすべての私のモジュールから、)すべてのメッセージがする必要があるかどうかでありますグローバルなMessages.elmに何らかの形で結合されていますか?それとももっと良い方法がありますか?

+1

を接続するためのビュー機能で、あなたの更新機能でCmd.map HeaderMsgHtml.map HeaderMsgを使用する主な

type Msg = HeaderMsg Header.Msg | .... 

に新しいメッセージを定義コードがリファクタリングするのが難しくなり、コンパイラが遅くなります。ビューを分割するのは問題ありませんが、可能な限り長くメッセージとモデルをルートに保持することを検討してください。 – Sebastian

+0

ちょっと@セバスチャン、なぜあなたは根元だけを保つ方が良いのか説明できますか?私は50の異なるコンポーネントを持っていると言うと、それは1つのモデルファイルは、最終的には、最終的にすべてのコンポーネントのファイルを持つフォルダを持つことになるだろうと思われる。 – Ilya

答えて

1

私のアドバイスは、メッセージが何行になるかを決めるのが難しいまで、メッセージを1つのファイルに保存しておくことです。モジュールフローの詳細については、EvanのElm Europe talkを参照してください。あなたが出て何かを壊したいときあなたはこのルートを下る場合は、その後、あなたのサブコンポーネント

+0

か、おそらく 'Html msg'型の署名をライブラリに使うことを考えていますか? – Anzel

+0

ちょっと@シモン、私はあなたの答えを受け入れました、それは私が目標を達成するのを助けました。しかし、ちょっと凝って、正しい方向に私を向けることができますか?なぜ、1つのファイルを保存する方が良いでしょうか? – Ilya

+1

すべてのファイルを1つのファイルに保存する方が「良い」わけではありませんが、Elmでは複数のファイルのすべてを壊すように感じるべきではありません。 –

関連する問題