typeless로 Redux 튜토리얼의 TodoList를 만들어 보았습니다.
소스 코드
메모
redux-devtools-extension
// src/index.tsx
import React from 'react';
import ReactDOM from 'react-dom';
import { RootEpic, RootReducer, TypelessProvider } from 'typeless';
import { createStore } from 'redux';
import { composeWithDevTools } from 'redux-devtools-extension';
import { App } from './components/App';
const rootEpic = new RootEpic();
const rootReducer = new RootReducer();
const store = (() => {
if (process.env.NODE_ENV === 'production') {
return createStore(rootReducer.getReducer());
}
return createStore(rootReducer.getReducer(), composeWithDevTools());
})();
ReactDOM.render(
<TypelessProvider rootEpic={rootEpic} rootReducer={rootReducer} store={store}>
<App />
</TypelessProvider>,
document.getElementById('app')
);
redux-devtools-extension 을 사용할 수 있도록 합니다.
state가 초기화되는 타이밍
기본 Redux라면 @@INIT
의 타이밍에서 초기 상태가 state 안에 보존되어 있습니다↓
typeless에서는 useModule
가 불린 타이밍에 @@typeless/added
가 dispatch 되어 초기 상태가 보존됩니다↓
VisibleTodoList
중에서는 todos
와 visibilityFilter
의 양쪽 모두의 상태를 사용하므로,
typeless 빠른 시작 에 있는 것처럼 useModule
하고 컴퍼넌트를 돌려준다, 라고 할 수 없었습니다. 그래서 useModule
와 컴퍼넌트를 따로 호출하고 있습니다. (여기 잘 쓰는 방법을 모르겠다…)
// components/App.tsx
import React from 'react';
import {
useTodoListModule,
AddTodoComponent,
VisibleTodoListComponent
} from '../features/todoList/module';
import { useFooterModule, FooterComponent } from '../features/footer/module';
export function App() {
useTodoListModule(); // <- useModuleのみ
useFooterModule(); // <- useModuleのみ
return (
<>
<AddTodoComponent />
<VisibleTodoListComponent />
<FooterComponent />
</>
);
}
Reference
이 문제에 관하여(typeless로 Redux 튜토리얼의 TodoList를 만들어 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yskoht/items/a83a07e1ef8a19b1c0fe
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
// src/index.tsx
import React from 'react';
import ReactDOM from 'react-dom';
import { RootEpic, RootReducer, TypelessProvider } from 'typeless';
import { createStore } from 'redux';
import { composeWithDevTools } from 'redux-devtools-extension';
import { App } from './components/App';
const rootEpic = new RootEpic();
const rootReducer = new RootReducer();
const store = (() => {
if (process.env.NODE_ENV === 'production') {
return createStore(rootReducer.getReducer());
}
return createStore(rootReducer.getReducer(), composeWithDevTools());
})();
ReactDOM.render(
<TypelessProvider rootEpic={rootEpic} rootReducer={rootReducer} store={store}>
<App />
</TypelessProvider>,
document.getElementById('app')
);
// components/App.tsx
import React from 'react';
import {
useTodoListModule,
AddTodoComponent,
VisibleTodoListComponent
} from '../features/todoList/module';
import { useFooterModule, FooterComponent } from '../features/footer/module';
export function App() {
useTodoListModule(); // <- useModuleのみ
useFooterModule(); // <- useModuleのみ
return (
<>
<AddTodoComponent />
<VisibleTodoListComponent />
<FooterComponent />
</>
);
}
Reference
이 문제에 관하여(typeless로 Redux 튜토리얼의 TodoList를 만들어 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yskoht/items/a83a07e1ef8a19b1c0fe텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)