2017-05-03 16 views
0

私は現在、React/TypeScriptプロジェクトに取り組んでおり、ファイルをいくつかのフォルダに分けています。私のプロジェクトでは、様々な処理方法を使用して、対話形式で数独を解いている、と私は、この構造に自分のアプリケーションを分割している: アプリケーションをどのように整理すればよいですか?

sudokusolver/ 
    css/ 
    dist/ 
    fonts/ 
    img/ 
    js/ -> external libraries, ie. jquery, etc. 
    node_modules/ 
    server/ -> fetches puzzle data from the server 
    ts/ 
     actions/ -> user actions stored for history navigation 
     components/ 
     containers/ 
     enumerations/ 
     models/ -> stores multiple actions for history navigation 
     solver/ -> sudoku solving methods 
     index.tsx 
    index.html 
    package.json 
    ... 

は今、私の components/containers/フォルダがかなり大きくなっています。私は私のファイル構造を再編成するためにどのようなスキームをとって、これが単一のページアプリケーションであることがわかっているのだろうかと思っています。どんな助けもありがとう。

+0

なぜ 'jquery'は' node_modules'にありませんか? 'css'がコンポーネントの隣にないのはなぜですか?基本的にアセットである 'fonts'と' img'が共通のディレクトリにないのはなぜですか?私は 'ui'フォルダを作成することから始めます。フォルダ 'ts'を呼び出さないでください。単純に 'src'または' source'と呼ぶのはなぜですか? – Sulthan

+0

私のjsフォルダのコンテナのブートストラップ、jqueryなど。しかし、npmはとにかくそれを処理できると思います。いい視点ね! – iHowell

+0

コンポーネントの横にあるCSSはどのくらい役に立ちますか?アプリケーション全体はクライアント側で、 'server /'フォルダにデータアクセス用のPHPスクリプトが1つあります。 – iHowell

答えて

1

あなたが投稿したものから、あなたのcomponentcontainerフォルダは平坦であるように、それは読み - 私はそれは良いアイデアだとは思わない - それは、あなたが言うように、かなり長いフォルダにつながります。

私の個人的なプロジェクトの1つに、次のレイアウトがあります。コンポーネントの下では、私は再利用可能なコンポーネントとコンポーネントをすべて持っています。彼らは多かれ少なかれネストされています - 私は、モーダル、レイアウト、フォームなどの下に "ゲーム"フォルダを持っています - ちょうど混乱を助けるために。 「コンテナ」(私はそれらを理解して)、下にある「ルート」とそのフォルダ構造は、それらがロードされているURLパスを次のagains(/profile/gamesroutes/profile/games/...から容器/ラッパーを使用しています)

enter image description here

ことだろう私の意見では、プロジェクトのビルドにグローバルに関連していないもの(webpack定義、npmのpackage.json、gulpfiles、(babel/eslint/tslint)rcファイルなど)をすべてサブフォルダ-または類似のものに移動するのに役立ちます。

また、サーバーとクライアントアプリケーションを分割して、同じフォルダの下に置く必要はありません。私は通常何かをする

それは混乱を減らすのに役立ちます。

+0

ありがとう、ありがとう!また、明確にするために、これはコンテナ/コンポーネントレイアウトの直後であり、ルートと関係なく、コンテナはコンポーネントのロジックを保持するだけです。私は、あなたが言っていることに続いて、それらを結合して、それらの階層(ページ上)によってすべてを新しいフォルダに分割する必要があると思います。それはまた少し助けになるかもしれません。 – iHowell

+0

ええ - これは私の個人的なスタイルですが、うまくいくと思います。フォルダをネストするのを恐れないでください。フォルダを簡単に折りたたむ/隠すことができます。そして、私が言ったように、私は私の "ルート"フォルダはあなたの "コンテナ"フォルダのようだと思います。ルート内のすべてが、(ここでは「グリッドの写真を配置」のような)高水準コンポーネントを保持/配置するだけです。 –

+0

共通のスーパーフォルダに 'actions'と' reducers'を入れることをお勧めします。 「状態」。実際には、 'navigation.reducer.ts'や' navigation.actions.ts'といった名前のファイルを使って、アクションとレデューサーを同じフォルダに保存する方が好きです。その理由は、これらのファイルは通常非常に緊密に結合されており、編集するときには通常2番目のファイルも編集するからです。 – Sulthan

関連する問題