クイックリファレンス

Deku チートシート(関数型仮想DOMライブラリ)

関数型仮想DOMライブラリ Deku v2 のクイックリファレンス。純粋関数コンポーネント、ライフサイクルフック、Redux 統合を網羅。

· 公開日

Deku は、プレーンな JavaScript 関数を用いてインタラクティブな UI を構築するためのエレガントで関数型な仮想 DOM ライブラリです。

関数型コンポーネントとライフサイクルフック

/** @jsx element */
import { element } from 'deku';

function render({ props, children, context, path }) {
  return (
    <div class="card" hidden={props.hidden} style={{ color: context.theme.color }}>
      <h2>{props.title}</h2>
      {children}
    </div>
  );
}

function onCreate({ props, dispatch, path }) {
  // Triggered on component mount
}

function onUpdate({ props, nextProps, dispatch }) {
  // Triggered when props change
}

function onRemove({ props, dispatch }) {
  // Triggered on component unmount
}

export default { render, onCreate, onUpdate, onRemove };

レンダリングと Redux ストア連携

import { createStore } from 'redux';
import { dom, element } from 'deku';
import App from './app';

const store = createStore(reducer);

// Bind renderer to DOM mounting container
const render = dom.createRenderer(document.getElementById('root'), store.dispatch);

// Subscribe to store updates
function update() {
  render(<App state={store.getState()} />, { theme: { color: '#333' } });
}

store.subscribe(update);
update();

関連するチートシート

関連テーマ