R

ReflexKR

Documentación de Reflex

El taller de componentes: los 100 componentes de Reflex

·

Resumen del curso

Diseño

·

Box

·

Flex

·

Stack

·

Grid

·

Container

·

Section

·

Center

·

Spacer

·

Separator

·

Card

·

Inset

·

Aspect Ratio

·

Fragment

Tipografía

·

Text

·

Heading

·

Link

·

Code

·

Markdown

·

Blockquote

·

Quote

·

Strong

·

Em

·

Kbd

Formularios

·

Button

·

Input

·

Text Area

·

Checkbox

·

Switch

·

Radio Group

·

Select

·

Slider

·

Form

·

Upload

Visualización de datos

·

Badge

·

Avatar

·

Icon

·

Callout

·

List

·

Data List

·

Code Block

·

Progress

·

Spinner

·

Scroll Area

·

Moment

Mostrar y ocultar

·

Tabs

·

Accordion

·

Segmented Control

Superposiciones

·

Tooltip

·

Popover

·

Hover Card

·

Dialog

·

Alert Dialog

·

Drawer

·

Dropdown Menu

·

Context Menu

·

Toast

Renderizado dinámico

·

Cond

·

Match

·

Foreach

·

Auto Scroll

Multimedia

·

Image

·

Audio

·

Video

Tablas y cuadrículas de datos

·

Table

·

Data Table

·

Data Editor

Gráficos

·

Area Chart

·

Bar Chart

·

Line Chart

·

Composed Chart

·

Pie Chart

·

Radar Chart

·

Radial Bar Chart

·

Scatter Chart

·

Funnel Chart

·

Treemap

·

Sankey Chart

·

Error Bar

Piezas de gráficos

·

Axis

·

Cartesian Grid

·

Chart Tooltip

·

Legend

·

Label

·

Reference

·

Brush

Otras bibliotecas de gráficos

·

Plotly

·

Pyplot

Elementos HTML

·

HTML

·

HTML Text

·

HTML Layout

·

HTML Forms

·

HTML Media

·

HTML Tables

·

SVG

Otras herramientas

·

Theme

·

Skeleton

·

Clipboard

·

Html Embed

·

Script

·

Memo

El taller de componentes: los 100 componentes de Reflex
Visualización de datos

Data List

rx.data_list.rootrx.data_list.itemrx.data_list.labelrx.data_list.value

Documentación oficial

Pedido del taller

En la pantalla de detalle del pedido, ordena el estado, la fecha, el número de seguimiento y el total en forma de «nombre: valor».

rx.data_list muestra en filas parejas de nombre y valor. Es ideal para organizar metadatos: datos de usuario, detalles de un pedido, propiedades de un archivo. Dentro de rx.data_list.root van los rx.data_list.item, y cada uno lleva un label (nombre) y un value (valor).

Status
Authorized
ID
U-474747
rx.data_list.root(
    rx.data_list.item(
        rx.data_list.label("Status"),
        rx.data_list.value("Authorized"),
    ),
    rx.data_list.item(
        rx.data_list.label("ID"),
        rx.data_list.value("U-474747"),
    ),
)

Prueba las propiedades

orientation, size y trim van en root; align, en item; color_scheme, en label.

Prueba las propiedades

Status
Authorized
Name
Developer Success

orientation

size

trim

align

label_color

rx.data_list.root(
    rx.data_list.item(
        rx.data_list.label("Status", color_scheme="gray"),
        rx.data_list.value(rx.badge("Authorized", radius="full")),
        align="center",
    ),
    rx.data_list.item(
        rx.data_list.label("Name", color_scheme="gray"),
        rx.data_list.value("Developer Success"),
        align="center",
    ),
    rx.data_list.item(
        rx.data_list.label("Email", color_scheme="gray"),
        rx.data_list.value(rx.link("success@reflex.dev", href="mailto:success@reflex.dev")),
        align="center",
    ),
    orientation="horizontal",
    size="2",
    trim="normal",
)
Con orientation en vertical, el nombre sube encima del valor. align es la alineación vertical del nombre y el valor dentro del elemento.
PiezaPropiedadValoresUso
rootorientation"horizontal" (por defecto) "vertical"Nombre y valor uno al lado del otro, o uno encima del otro
rootsize"1" "2" (por defecto) "3"Tamaño del texto y espaciado entre filas
roottrim"normal" "start" "end" "both"Recorta el espacio del texto sobre la primera fila y bajo la última
itemalign"start" "center" "end" "baseline" "stretch"Alineación vertical del nombre y el valor
labelwidth min_width max_widthLongitud CSSAncho de la columna de nombres
labelcolor_schemeNombre de color RadixColor del texto del nombre
value(ninguna)Acepta cualquier componente como hijo

Cualquier cosa como valor

En value caben no solo textos, también componentes como badges, código o enlaces. Si lo metes en una tarjeta, como en el ejemplo de la documentación oficial, tienes una ficha de información. Si un valor tiene otra altura, como un badge, da align="center" a ese elemento para centrarlo con el nombre.

Status
Authorized
ID
U-474747
Name
Developer Success
Company
Reflex
rx.card(
    rx.data_list.root(
        rx.data_list.item(
            rx.data_list.label("Status"),
            rx.data_list.value(rx.badge("Authorized", variant="soft", radius="full")),
            align="center",
        ),
        rx.data_list.item(
            rx.data_list.label("ID"),
            rx.data_list.value(rx.code("U-474747")),
        ),
        rx.data_list.item(
            rx.data_list.label("Name"),
            rx.data_list.value("Developer Success"),
            align="center",
        ),
        rx.data_list.item(
            rx.data_list.label("Email"),
            rx.data_list.value(rx.link("success@reflex.dev", href="mailto:success@reflex.dev")),
        ),
        rx.data_list.item(
            rx.data_list.label("Company"),
            rx.data_list.value(rx.link("Reflex", href="https://reflex.dev", is_external=True)),
        ),
    ),
)

Orientación

orientation va en root. En pantallas estrechas se lee mejor uno encima del otro (vertical). Como en el tercer caso, también puedes dar un valor distinto según el ancho de pantalla (vertical en pantallas estrechas, horizontal a partir de sm).

Plan
Pro
Seats
12
Plan
Pro
Seats
12
Plan
Pro
Seats
12
rx.flex(
    rx.data_list.root(
        rx.data_list.item(rx.data_list.label("Plan"), rx.data_list.value("Pro")),
        rx.data_list.item(rx.data_list.label("Seats"), rx.data_list.value("12")),
        orientation="horizontal",
    ),
    rx.data_list.root(
        rx.data_list.item(rx.data_list.label("Plan"), rx.data_list.value("Pro")),
        rx.data_list.item(rx.data_list.label("Seats"), rx.data_list.value("12")),
        orientation="vertical",
    ),
    rx.data_list.root(
        rx.data_list.item(rx.data_list.label("Plan"), rx.data_list.value("Pro")),
        rx.data_list.item(rx.data_list.label("Seats"), rx.data_list.value("12")),
        orientation={"initial": "vertical", "sm": "horizontal"},
    ),
    spacing="6",
    wrap="wrap",
)

Ajustar la columna de nombres

Si fijas el ancho de la columna de nombres con width en label, los valores de varias listas empiezan en la misma línea. color_scheme cambia el color del texto del nombre.

Owner
Ada Lovelace
Repository
reflex-dev/reflex
rx.data_list.root(
    rx.data_list.item(
        rx.data_list.label("Owner", width="80px", color_scheme="indigo"),
        rx.data_list.value("Ada Lovelace"),
    ),
    rx.data_list.item(
        rx.data_list.label("Repository", width="80px", color_scheme="indigo"),
        rx.data_list.value("reflex-dev/reflex"),
    ),
)

Crear elementos a partir de datos

Si los elementos están en tus datos, crea una fila por cada uno con rx.foreach. La vista previa de propiedades de la documentación oficial usa también este método.

Status
Authorized
ID
U-474747
Name
Developer Success
Email
foo@reflex.dev
class DataListUserState(rx.State):
    fields: list[list[str]] = [
        ["Status", "Authorized"],
        ["ID", "U-474747"],
        ["Name", "Developer Success"],
        ["Email", "foo@reflex.dev"],
    ]


rx.data_list.root(
    rx.foreach(
        DataListUserState.fields,
        lambda f: rx.data_list.item(rx.data_list.label(f[0]), rx.data_list.value(f[1])),
    ),
)

Completar el pedido

El número de pedido va como título; el estado, como badge; el número de seguimiento, como código; y el total, en negrita.

Order #1024

Status
Shipped
Placed
2026-10-20
Tracking
1Z999AA10123456784
Total

$48.00

rx.card(
    rx.heading("Order #1024", size="4", margin_bottom="3"),
    rx.data_list.root(
        rx.data_list.item(
            rx.data_list.label("Status"),
            rx.data_list.value(rx.badge("Shipped", color_scheme="green", radius="full")),
            align="center",
        ),
        rx.data_list.item(rx.data_list.label("Placed"), rx.data_list.value("2026-10-20")),
        rx.data_list.item(rx.data_list.label("Tracking"), rx.data_list.value(rx.code("1Z999AA10123456784"))),
        rx.data_list.item(rx.data_list.label("Total"), rx.data_list.value(rx.text("$48.00", weight="bold"))),
    ),
    max_width="420px",
)

Notas del taller

  • Estructura: data_list.root > data_list.item > (data_list.label, data_list.value).

  • root: orientation · size · trim; item: align; label: width · color_scheme.

  • En value cabe cualquier componente: badges, código, enlaces…

  • Si los datos son una lista, crea los item con rx.foreach.

← Anterior

Visualización de datos · List

Siguiente →

Visualización de datos · Code Block

Recibe avisos de nuevas lecciones

Te avisaremos por correo cuando este curso tenga lecciones nuevas o se abra un curso de continuación.

Datos: tu correo electrónico · Finalidad: avisos de nuevas lecciones o de la publicación de este curso · Conservación: hasta que pidas que lo borremos. No lo usamos para nada más ni lo compartimos. Responde a cualquier aviso y lo borraremos enseguida.

Preguntas y respuestas

Pregunta lo que quieras sobre esta lección. Aquí se reúnen las preguntas de todas las versiones de idioma de esta página.

Se muestra como texto plano, sin enlaces ni formato.

R

ReflexKR

Aprende Python y Reflex haciendo. Todos los ejemplos se ejecutaron y verificaron en Reflex 0.10.0.

ReflexKR es gratis y sin banners publicitarios. Si te ayudó, puedes apoyarlo con un café. ☕ Invítanos un café

Aviso de afiliados
한국어English日本語简体中文EspañolDeutsch

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

Built with Reflex