Upgrade to Pro — share decks privately, control downloads, hide ads and more …

文学作品「檸檬」をReactで読む

 文学作品「檸檬」をReactで読む

Reactでごちゃこちゃやった話。React LT会 @Informetis (2019-07-03) で発表。
ソースコード:https://github.com/mqtsuo02/lemon-with-react
詳細な解説:https://qiita.com/mqtsuo02/items/5a4b7a5e3379c75116f3

Matsuo Obu

July 03, 2019
Tweet

More Decks by Matsuo Obu

Other Decks in Technology

Transcript

  1. 仕様的なもの mqtsuo02 / lemon-with-react - 文字が流れる - 全文表示後に ▼ が点滅する

    - クリックすると次の文章が表示される - 途中でクリックすると全文表示される
  2. 実装 再帰的な文字結合 streamMessage() { setTimeout(() => { this.message += this.messageChars[this.charCount];

    this.charCount++; this.messageRef.current.innerText = this.message; this.streamMessage(); }, 50); }
  3. その他の実装 点滅する▼はEmotionでアニメーションを実装 const blink = keyframes` 0% {...} 50% {...}

    100% {...} `; const nextStyle = css` animation: 1s linear infinite ${blink}; `; const NextSymbol = () => <span css={nextStyle}>▼</span>;
  4. その他の実装 テキストのフォーマットと配列化 const formatText = text => text.replace(/\r?\n/g, "").replace(/ /g, "");

    const splitText = text => text .replace(/。/g, "。,") .replace(/」/g, "」,") .split(",");