generated at
Reactでstyleタグを作る
Reactで表示するDOMを切り替えるのではなく
CSSで不要な行を非表示にする方法でやっている
GyazzA(C)と同じ方式
CSSで非表示にするだけ
DOMには書いておくと、スライドの後ろの方の <img> <video> prefetchされる

準備
まず各行に段落構造(インデントの深さ)を見て、 section-番号 というcss class nameを付けておく
.line.section-番号 というCSSセレクタで行にスタイルを当てれるようになる
これはReactでやっておく


表示を切り替える
<style> タグを更新する
.line:not(.section-番号)
現在表示するべきsection以外を対象にする疑似セレクタ
これに display: none; を当てれば、消える

表示を切り替えるReactコンポーネント
<style> を返せばいい
js
export function PresentationCSS ({currentSection}) { const css = `.line:not(.section-${currentSection}) { display: none; }` return <style>{css}</style> }
childrenには普通にCSSが書けちゃう

<PresentationCSS> コンポーネントを使う
appから <PresentationCSS currentSection={3} /> と呼び出す
これで、3ページ目だけを表示するCSSが返ってくる
styleタグはHTMLのどこに書いても良い
Reactの中にstyleタグが書かれれば表示に反映される

ReactでSVGを描くをやってて、なんとなくこんな感じで書けそうだなと思ったらやっぱりできたshokai