Redux 대 React Context API 대 AppRun

16670 단어 reactapprunwebdevredux
최근에 Redux vs. The React Context API 이라는 제목의 멋진 게시물을 읽었습니다. 내가 좋아하는 게시물의 유형입니다. 장면 뒤의 개념을 설명하기 위해 간단한 예를 사용합니다. 예제는 간단해 보이지만 산만함 없이 개념을 이해할 수 있게 해줍니다. 몇 분 동안 읽은 후 Redux 및 Context API를 배웠고 AppRun 애플리케이션에서 동일한 작업을 수행하면 어떨까 생각하기 시작했습니다. 더 이상 고민하지 않고 glitch.com에서 동일한 예제를 만들었습니다.



glitch.com에서 라이브 데모를 볼 수 있습니다: https://apprun-state-2-components.glitch.me

Redux 및 Context API와 비교하여 이해를 돕기 위해 AppRun의 사고 과정을 설명하겠습니다.

HTML



HTML에는 사이트 구조가 있습니다.

<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <title>AppRun</title>
</head>
<body>
  <div id="root">
    <div class="app">
      <div class="nav" id="user-avatar">
      </div>
      <div class="body">
        <div class="sidebar">
          <div class="user-stats" id="user-stats">
          </div>
        </div>
        <div class="content">main content here</div>
      </div>
    </div>
  </div>
  <script src="main.tsx"></script>
</body>
</html>

우리는 주로 HTML을 사용하고 구성 요소 구조가 필요하지 않음을 알 수 있습니다.

// No need
<App>
  <Nav>
    <UserAvatar />
  </Nav>
  <Body>
    <Sidebar>
      <UserStats />
    </Sidebar>
  </Body>
</App>

우리는 구성 요소 구조에 강제로 들어가지 않기 때문에 HTML을 활용하고 구성 요소를 HTML 요소에 마운트합니다.

주요 프로그램



AppRun 애플리케이션에서 컴포넌트를 HTML 요소에 마운트합니다.

import './style.css';

import app from 'apprun';

import UserAvatar from './UserAvatar';
import UserStats from './UserStats';

new UserAvatar().mount('user-avatar');
new UserStats().mount('user-stats');

app.run('/set-user', {
  avatar: "https://github.com/yysun/apprun/blob/master/logo.png?raw=true",
  name: "AppRun",
  followers: 1234,
  following: 123
});

두 가지 구성 요소만 필요합니다. id가 각각 'user-avatar'와 'user-stats'인
요소에 마운트합니다.

그런 다음 사용자 데이터를 이벤트 매개변수로 사용하여 AppRun 이벤트 '/set-user'를 게시합니다.

구성 요소



구성 요소는 AppRun 이벤트를 구독하고 처리합니다. 이벤트 매개변수에서 사용자 데이터를 가져오고 새 구성 요소 상태를 만듭니다. 그런 다음 AppRun은 새 상태로 보기 함수를 호출합니다. view 함수는 JSX를 사용하여 Virtual DOM을 생성합니다. 그런 다음 AppRun은 DOM을 렌더링합니다.

UserAvatar 구성 요소



UserAvatar 구성 요소는 아바타 이미지를 표시합니다. 상태는 아바타 URL입니다.

import app, {Component} from 'apprun';

export default class extends Component {
  state = '';

  view = (state) => <img className="user-avatar small" alt="user avatar" src={state} />;

  update = {
    '/set-user': (_, user) => user.avatar,
  }
}

UserStats 컴포넌트



UserStats 구성 요소는 사용자의 아바타 이미지, 이름 및 기타 정보를 표시합니다. 상태는 사용자 개체입니다.

import app, {Component} from 'apprun';

export default class extends Component {
  state = {} ;

  view = (user) => <>
    <div>
      <img className="user-avatar " alt="user avatar" src={user.avatar}/>
      {user.name}
    </div>
    <div className="stats">
      <div>{user.followers} Followers</div>
      <div>Following {user.following}</div>
    </div>
  </>;

  update = {
    '/set-user': (_, user) => user,
  }
}

AppRun은 JSX fragment . 루트 요소 없이 요소 목록을 만들어 그룹화할 수 있습니다. 요소 목록은 구성 요소가 마운트된 요소에 삽입됩니다. 그것은 우리가 미세 조정하고 완벽한 HTML 구조를 얻는 데 도움이 됩니다.

그게 다야.

결론



두 가지로 인해 AppRun 응용 프로그램이 더 쉽고 간단해졌습니다. 하나는 구성 요소를 요소에 마운트할 수 있다는 것입니다. 두 번째는 이벤트를 사용하여 데이터를 전달하고 구성 요소 상태 업데이트 및 DOM 렌더링을 포함한 일련의 프로세스를 트리거한다는 것입니다.

glitch.com에서 예제를 리믹스할 수 있습니다. https://glitch.com/edit/#!/remix/apprun-state-2-components

AppRun에 대한 자세한 내용은 다음을 방문하십시오.


이순 / 앱런


AppRun은 elm에서 영감을 받은 아키텍처, 이벤트 및 구성 요소를 사용하여 고성능의 안정적인 웹 애플리케이션을 개발하기 위한 JavaScript 라이브러리입니다.





앱런


AppRun은 Elm에서 영감을 받은 아키텍처, 이벤트 및 구성 요소를 사용하여 안정적인 고성능 웹 애플리케이션을 구축하기 위한 JavaScript 라이브러리입니다.

AppRun is an MIT-licensed open source project. Please consider supporting the project on Patreon. 👍❤️🙏


AppRun 혜택


  • 적은 코드 작성
  • 학습할 독점 구문이 없음
  • 컴파일러/변환기는 선택 사항입니다
  • .
  • 상태 관리 및 라우팅 포함
  • jQuery, chartjs, D3, lit-html과 나란히 실행...

  • AppRun은 npm에 배포됩니다.
    npm install apprun

    unpkg.com CDN에서 직접 AppRun을 로드할 수도 있습니다.
    <script src="https://unpkg.com/apprun/dist/apprun-html.js"></script>

    또는 unpkg.com에서 ES 모듈로 사용하십시오.
    <script type="module">
      import { app, Component } from 'https://unpkg.com/apprun/esm/apprun-html?module'
    </script>

    아키텍처 개념



  • AppRun 아키텍처에는 상태, 보기 및 업데이트가 있습니다.
  • AppRun은 이벤트 기반입니다.
  • AppRun은 Component 기반입니다.

  • Try the AppRun Playground .

    Apress의 AppRun Book



  • Order from Amazon

  • AppRun 만들기



    View on GitHub


    즐겁게 코딩하고 PR을 보내세요.

    좋은 웹페이지 즐겨찾기