Coder Social home page Coder Social logo

hunkii-lee / react-with-clean-architecture Goto Github PK

View Code? Open in Web Editor NEW

This project forked from falsy/clean-architecture-with-typescript

0.0 0.0 1.0 207 KB

Clean Architecture 기반 React 프로젝트 샘플 코드

JavaScript 13.23% HTML 0.55% TypeScript 80.04% CSS 6.18%

react-with-clean-architecture's Introduction

Base code of React with Clean architecture

'Clean Architecture'를 기반으로 하는 'React' 프로젝트 샘플 코드

Before the beginning

부족한 부분이나 개선사항은 Issue 또는 Pull Request 남겨주시면 함께 반영하도록 하겠습니다. ☺️

Use Stack

  • Webpack
  • Typescript
  • React
  • Redux
  • Sass

Test

  • Jest
  • Enzyme

Clean Architecture

Alt Clean architecture

Communitaction Flow

준비중...

Development Flow

준비중...

Directory Structure

./src
├─ adapters
│  ├─ presenters
│  ├─ repositories
│  └─ infrastructures
├─ domains
│  ├─ di
│  ├─ entities
│  ├─ vos
│  ├─ useCases
│  └─ interfaces
│     ├─ entites
│     ├─ infrastructures
│     ├─ repositories
│     ├─ useCases
│     └─ vos
└─ frameworks
   └─ web
      ├─ redux
      └─ components
         ├─ atoms
         ├─ molecules
         ├─ organisms
         ├─ templates
         └─ pages
  • '클린 아키텍처'의 레이어를 기준으로 구성되어 있습니다. [frameworks / adapters / domains(useCaes / entities)]
  • 'components' 디렉토리는 [아토믹 디자인]을 참고 하였습니다. [atoms / molecules / organisms / templates / pages]

Alias

tsconfig.json

{
  //...
  "baseUrl": "./",
  "paths": {
    "@adapters/*": ["src/adapters/*"],
    "@domains/*": ["src/domains/*"],
    "@frameworks/*": ["src/frameworks/*"],
    "@interfaces/*": ["src/domains/interfaces/*"],
    "@presenters/*": ["src/adapters/presenters/*"],
    "@redux/*": ["src/frameworks/web/redux/*"]
  }
}

webpack.config.js

{
  //...
  resolve: {
    extensions: [".tsx", ".ts", ".js"],
    alias: { 
      "@adapters": path.resolve(__dirname, "src/adapters/"),
      "@domains": path.resolve(__dirname, "src/domains/"),
      "@frameworks": path.resolve(__dirname, "src/frameworks/"),
      "@interfaces": path.resolve(__dirname, "src/domains/interfaces/"),
      "@presenters": path.resolve(__dirname, "src/adapters/presenters/"),
      "@redux": path.resolve(__dirname, "src/frameworks/web/redux/") 
    }
  }
}

jest.config.js

{
  //...
  moduleNameMapper: { 
    //...
    "^@adapters/(.*)$": "<rootDir>/src/adapters/$1",
    "^@domains/(.*)$": "<rootDir>/src/domains/$1",
    "^@frameworks/(.*)$": "<rootDir>/src/frameworks/$1",
    "^@interfaces/(.*)$": "<rootDir>/src/domains/interfaces/$1",
    "^@presenters/(.*)$": "<rootDir>/src/presenters/$1",
    "^@redux/(.*)$": "<rootDir>/src/redux/$1"
  }
}

DEMO

Install

npm install

Start

npm start
// or
// npm run mock

Version

v1.1.3

react-with-clean-architecture's People

Contributors

falsy avatar

Forkers

baboleevan

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.