R

ReflexKR

Reflex公式ドキュメント

触って覚えるReflexの基本

·

講座の概要

1

押すと変わる:Stateとイベント

2

出たり消えたり:条件付きレンダリング

3

リストを描く:rx.foreach

4

なぜifが使えない?コンパイル時と実行時

5

見た目を整える:コンポーネント、props、スタイル

6

アプリとページ、そしてフルーツバスケット

触って覚えるReflexの基本
5限目

時間 0:28–0:34

見た目を整える:コンポーネント、props、スタイル

ここまで、rx.button、rx.heading、rx.boxといったコンポーネントを何気なく使ってきました。この回では、コンポーネントを作り、組み立て、見た目を整えるためのルールを整理します。ルールはたった2つです。

5-1. コンポーネントは関数が返す値 (1分)

コンポーネントとは、ボタン、テキスト、画像のように画面を構成する部品です。Reflexには標準のコンポーネントがたくさん用意されていて、コンポーネントを返す関数を作れば、それが自分だけのコンポーネントになります。

def my_button():
    return rx.button("Click Me")

localhost:3000

実行画面
rx.buttonを1つ返す関数が、そのままコンポーネントになります。

5-2. ルール1:位置引数は子要素 (2分)

コンポーネントの中に別のコンポーネントを入れるには、位置引数として渡します。下の例では、rx.textとmy_button()がrx.boxの子要素です。別の関数で作ったコンポーネントも、呼び出してそのまま入れれば大丈夫です。

def my_container():
    return rx.box(
        rx.text("This is a page"),
        # Reference components defined in other functions.
        my_button(),
    )

localhost:3000

実行画面

This is a page

rx.boxの中に、テキストとmy_buttonが順番に入りました。

使いたいコンポーネントがない場合は、rx.elでHTMLタグをそのまま使えます。rx.el.divは<div>、rx.el.pは<p>です。

def my_div():
    return rx.el.div(
        rx.el.p("Use base html!"),
    )

localhost:3000

実行画面

Use base html!

rx.elで作った素のHTML要素です。

それでも足りなければ、npmにあるReactコンポーネントをラップして使うこともできます。

5-3. ルール2:キーワード引数はpropsとスタイル (2分)

コンポーネントの動作や見た目は、キーワード引数で指定します。これをpropsと呼びます。propsはコンポーネントごとに異なるので、初めて使うコンポーネントはドキュメントでどんなpropsがあるか確認しましょう。

def half_filled_progress():
    return rx.progress(value=50)

localhost:3000

実行画面
value=50のpropで、半分まで埋まったプログレスバーです。

コンポーネント固有のprops以外に、CSSのプロパティをそのままpropsとして渡して見た目を整えることもできます。

def round_button():
    return rx.button("Click Me", border_radius="15px", font_size="18px")

localhost:3000

実行画面
border_radiusとfont_sizeで、角の丸みと文字の大きさを変えたボタンです。

ポイント — CSSのプロパティ名はsnake_caseに直して書きます。border-radius → border_radius、font-size → font_size。詳しくはスタイルガイドを参照してください。

まとめると、コンポーネントは子要素とpropsでできています。

子要素(children)props
何か中に入るテキストや別のコンポーネント動作や見た目を決める属性
渡し方位置引数キーワード引数
例rx.box(rx.text("hi"), my_button())rx.button("Go", color_scheme="green")

1限目でrx.heading(MyState.count, color=MyState.color)のようにVarを子要素とpropsの両方に入れたのも、この2つのルールそのものです。

練習問題

  1. round_buttonにcolor_scheme="green"とsize="3"を追加してみましょう。
  2. my_containerのrx.boxにpadding="16px"、border="1px solid #ccc"、border_radius="12px"を指定して、カードのような見た目にしてみましょう。
  3. rx.progressのvalueを1限目のCounterState.countに変えるとどうなるでしょうか?ボタンを押すたびにバーが伸びていくようにしてみましょう。

この回のチェックリスト

  • 位置引数とキーワード引数がそれぞれ何になるかを説明できる。
  • CSSのプロパティをsnake_caseのpropsに直して書ける。
  • 必要なコンポーネントがないときにrx.elを使える。

← 前へ

4限目 · なぜifが使えない?コンパイル時と実行時

次へ →

6限目 · アプリとページ、そしてフルーツバスケット

新しい授業・講座のお知らせを受け取る

この講座に授業が追加されたり、続きの講座が公開されたりしたらメールでお知らせします。

収集項目:メールアドレス・目的:この講座の新しい授業・公開のお知らせ・保有期間:解除のご依頼まで。他の目的には使わず、第三者にも提供しません。お知らせメールに返信いただければすぐに削除します。

質問と回答

この回について気になることを書き込んでください。すべての言語のページの質問がここに集まります。

リンクや書式なしで、そのままの文字で表示されます。

R

ReflexKR

触って学ぶPythonとReflex。すべての例はReflex 0.10.0で実際に動かして確認しています。

ReflexKRはバナー広告なし・無料で運営しています。役に立ったら、コーヒー一杯で応援してください。 ☕ コーヒーで応援する

アフィリエイトと支援について
한국어English日本語简体中文EspañolDeutsch

© 2026 ReflexKR · Since 2026 · CC BY-NC 4.0

Built with Reflex