Tiempo 0:28–0:34
Hasta ahora has usado con toda naturalidad componentes como rx.button, rx.heading y rx.box. En esta lección repasamos las reglas para crear, combinar y dar estilo a los componentes. Son solo dos.
Un componente es una pieza de la interfaz, como un botón, un texto o una imagen. Reflex incluye muchos componentes integrados, y si escribes una función que devuelve un componente, ya tienes tu propio componente.
def my_button():
return rx.button("Click Me")localhost:3000
Vista previaPara meter un componente dentro de otro, pásalo como argumento posicional. Abajo, rx.text y my_button() son hijos de rx.box. Los componentes creados en otras funciones también se añaden simplemente llamándolos.
def my_container():
return rx.box(
rx.text("This is a page"),
# Reference components defined in other functions.
my_button(),
)localhost:3000
Vista previaThis is a page
Si no existe el componente que necesitas, puedes usar etiquetas HTML directamente con rx.el. rx.el.div es <div> y rx.el.p es <p>.
def my_div():
return rx.el.div(
rx.el.p("Use base html!"),
)localhost:3000
Vista previaUse base html!
Y si aun así te falta algo, también puedes envolver componentes de React disponibles en npm.
El comportamiento y el aspecto de un componente se definen con argumentos con nombre (keyword arguments). Estos se llaman props. Cada componente tiene sus propias props, así que, cuando uses uno por primera vez, consulta en la documentación qué props tiene.
def half_filled_progress():
return rx.progress(value=50)localhost:3000
Vista previaAdemás de las props propias del componente, puedes pasar propiedades CSS directamente como props para darle estilo.
def round_button():
return rx.button("Click Me", border_radius="15px", font_size="18px")localhost:3000
Vista previaPara saber — Los nombres de las propiedades CSS se escriben en snake_case: border-radius → border_radius, font-size → font_size. Encontrarás más opciones en la guía de estilos.
En resumen, un componente se compone de hijos y props.
| Hijos (children) | Props | |
|---|---|---|
| Qué son | El texto u otros componentes que van dentro | Atributos que definen el comportamiento y el aspecto |
| Cómo se pasan | Argumentos posicionales | Argumentos con nombre |
| Ejemplo | rx.box(rx.text("hi"), my_button()) | rx.button("Go", color_scheme="green") |
Cuando en la lección 1 pusiste una Var tanto de hijo como de prop, como en rx.heading(MyState.count, color=MyState.color), estabas aplicando exactamente estas dos reglas.
color_scheme="green" y size="3" a round_button.rx.box de my_container las props padding="16px", border="1px solid #ccc" y border_radius="12px" para que parezca una tarjeta.value de rx.progress por el CounterState.count de la lección 1? Haz que la barra se llene un poco más con cada clic del botón.rx.el cuando no existe el componente que necesito.← Anterior
Lección 4 · ¿Por qué no funciona if? Compilación vs. ejecución
Siguiente →
Lección 6 · Apps, páginas y una cesta de frutas
Recibe avisos de nuevas lecciones
Te avisaremos por correo cuando este curso tenga lecciones nuevas o se abra un curso de continuación.
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© 2026 ReflexKR · Since 2026 · CC BY-NC 4.0
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.