1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

typelessでReduxチュートリアルのTodoListを作ってみた

Last updated at Posted at 2019-04-30

↓の記事でtypelessというツールキットを知ったので、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の中に保存されています↓

スクリーンショット 2019-04-30 17.24.50.png

typelessではuseModuleが呼ばれたタイミングで@@typeless/addedがdispatchされて初期状態が保存されます↓

スクリーンショット 2019-04-30 17.31.10.png

VisibleTodoListの中ではtodosvisibilityFilterの両方の状態を使うので、
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 />
    </>
  );
}
1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?