reflex.dev
Componentes Personalizados en Reflex
User avatar
Curated by
gustavozunigagoni
5 min read
143
1
Reflex, un framework de desarrollo web en Python, permite a los desarrolladores crear componentes personalizados para extender su funcionalidad y compartirlos con la comunidad, según la documentación oficial. Estos componentes personalizados pueden ser desde envoltorios de componentes React hasta componentes de alto nivel que encapsulan estado y UI en una sola clase.

Creación de Componentes Reactivos

Método GET y Asincronía - Consumiendo API de Rick And Morty
Método GET y...
Watch
Reflex proporciona una forma intuitiva de crear componentes reactivos utilizando Python. Para desarrollar un componente personalizado, se puede utilizar el comando reflex component init, que genera una estructura de proyecto con una carpeta custom_components donde se implementa la lógica del componente
1
.
Los componentes reactivos en Reflex pueden ser de dos tipos principales:
  • Envoltorios de React: Permiten integrar componentes React existentes en aplicaciones Reflex
    2
    .
  • Componentes de alto nivel: Construidos a partir de componentes Reflex existentes, pueden encapsular lógica compleja y estado en una sola clase utilizando rx.ComponentState
    2
    .
Estos componentes personalizados pueden luego ser compartidos y utilizados por la comunidad, ampliando así el ecosistema de Reflex. Por ejemplo, se puede crear un componente de chat completo y publicarlo como un paquete que otros desarrolladores pueden instalar y usar fácilmente en sus propias aplicaciones
2
.
reflex.dev favicon
reflex.dev favicon
2 sources

Estilización con CSS y Tailwind

codea.app
codea.app
Reflex ofrece flexibilidad en la estilización de componentes, permitiendo el uso de CSS tradicional y el popular framework Tailwind CSS. Para aplicar estilos con Tailwind, simplemente se añaden las clases utilitarias directamente a los componentes Reflex
1
2
.
Por ejemplo:
python
rx.text("Hola, mundo!", class_name="text-blue-500 font-bold text-2xl")
Este enfoque permite una rápida personalización del diseño sin necesidad de escribir CSS personalizado. Además, Reflex es altamente configurable, permitiendo a los desarrolladores personalizar la paleta de colores, espaciado y otros aspectos del diseño a través del archivo tailwind.config.js
3
4
.
Para proyectos que requieren estilos más específicos, Reflex también admite la inclusión de hojas de estilo CSS personalizadas, ofreciendo así una combinación potente de la eficiencia de Tailwind y la flexibilidad del CSS tradicional.
certidevs.com favicon
dreamhost.com favicon
vabadus.es favicon
4 sources

Publicación en PyPI

reflex.dev
reflex.dev
Para publicar un componente personalizado de Reflex en PyPI, es crucial cumplir con ciertos prerrequisitos y seguir un proceso estructurado. Antes de la publicación, asegúrese de que su componente cumpla con los estándares de calidad y documentación requeridos por Reflex
1
.
El proceso de publicación implica los siguientes pasos:
  • Prepare su proyecto con una estructura adecuada, incluyendo un archivo pyproject.toml correctamente configurado
    2
    .
  • Utilice el comando reflex component publish para iniciar el proceso de publicación
    1
    .
  • Si es la primera vez que publica, deberá crear un token de cuenta completa en PyPI. Para publicaciones posteriores, se recomienda usar un token específico del proyecto
    3
    .
  • Asegúrese de incrementar la versión en pyproject.toml antes de cada nueva publicación, ya que PyPI no permite sobrescribir versiones existentes
    1
    .
  • Considere usar TestPyPI para probar el proceso de publicación antes de hacerlo en el repositorio principal de PyPI
    3
    .
Una vez publicado, su componente estará disponible para la comunidad de Reflex, contribuyendo así al crecimiento del ecosistema de componentes personalizados
2
.
reflex.dev favicon
reflex.dev favicon
pypi.org favicon
3 sources

Generación de Token PyPI

pyfound.blogspot.com
pyfound.blogspot.com
Para generar un token API en PyPI, sigue estos pasos:
  • Inicia sesión en tu cuenta de PyPI y ve a la configuración de tu cuenta
    1
    2
    .
  • Desplázate hasta la sección "API tokens" y haz clic en "Add API token"
    1
    .
  • Asigna un nombre descriptivo al token y selecciona el alcance adecuado
    2
    :
    • Para un token de cuenta completa, elige "Entire account (all projects)".
    • Para un token específico de proyecto, selecciona el proyecto deseado.
  • Haz clic en "Create token" y copia inmediatamente el token generado, ya que no se mostrará nuevamente
    1
    2
    .
Es importante notar que para proyectos nuevos que aún no existen en PyPI, deberás crear inicialmente un token de cuenta completa. Una vez que el proyecto esté publicado, puedes reemplazarlo con un token específico del proyecto para mayor seguridad
3
.
Recuerda almacenar el token de forma segura y nunca compartirlo públicamente
4
.
guidebook.devops.uis.cam.ac.uk favicon
buildwithfern.com favicon
stackoverflow.com favicon
4 sources

Pasos Token API PyPI

pyfound.blogspot.com
pyfound.blogspot.com
Para generar un token API en PyPI, sigue estos pasos específicos:
  1. Inicia sesión en tu cuenta de PyPI en https://pypi.org/.
  2. Ve a "Account settings" y luego a la sección "API tokens"
    1
    .
  3. Haz clic en "Add API token"
    1
    .
  4. Asigna un nombre descriptivo al token, por ejemplo, "GitLab CI for [NOMBRE DEL PAQUETE]"
    1
    .
  5. Elige el alcance del token:
    • Para un nuevo proyecto, selecciona "Entire account (all projects)"
      1
      .
    • Para un proyecto existente, elige el proyecto específico
      1
      .
  6. Haz clic en "Create token" y copia inmediatamente el token generado
    1
    .
  7. Guarda el token de forma segura, ya que no se mostrará nuevamente
    1
    .
  8. Para usar el token en CI/CD, agrégalo como una variable protegida y enmascarada en la configuración de tu proyecto
    1
    .
Recuerda que es una buena práctica reemplazar los tokens de alcance completo por tokens específicos de proyecto una vez que hayas publicado tu paquete
1
.
guidebook.devops.uis.cam.ac.uk favicon
1 source

Creación de Componentes Personalizados

reflex.dev
reflex.dev
Para crear un componente personalizado en Reflex, sigue estos pasos:
  1. Inicia un nuevo proyecto de componente con reflex component init.
  2. Implementa tu componente en el archivo generado dentro de la carpeta custom_components.
  3. Desarrolla y prueba tu componente utilizando la aplicación de demostración creada automáticamente.
  4. Publica tu componente con reflex component publish.
Ejemplo de implementación de un componente personalizado simple:
python
import reflex as rx class CustomButton(rx.Component): library = "react-custom-button" tag = "CustomButton" text: str color: str = "blue" def _get_custom_code(self): return """ const CustomButton = ({ text, color, ...props }) => ( {text} ); """ def render(self): return self.tag( text=self.text, color=self.color )
Este ejemplo crea un botón personalizado con texto y color configurables. El componente se puede usar en una aplicación Reflex de la siguiente manera:
python
def index(): return rx.vstack( CustomButton(text="Haz clic", color="red"), CustomButton(text="Otro botón", color="green") )
Recuerda probar exhaustivamente tu componente antes de publicarlo
1
2
.
reflex.dev favicon
reflex.dev favicon
2 sources

Publicación en PyPI

learn.microsoft.com
learn.microsoft.com
Para publicar un componente personalizado de Reflex en PyPI, siga estos pasos específicos:
  • Ejecute reflex component publish en la raíz de su proyecto
    1
    .
  • Proporcione sus credenciales de PyPI cuando se le solicite, ya sea con un nombre de usuario y contraseña o un token de API
    1
    .
  • El comando construirá los archivos de distribución en una carpeta dist y los subirá automáticamente a PyPI
    1
    .
  • Asegúrese de incrementar el número de versión en pyproject.toml antes de cada nueva publicación, ya que PyPI no permite sobrescribir versiones existentes
    2
    .
Es recomendable probar primero la publicación en TestPyPI antes de hacerlo en el repositorio principal. Una vez publicado con éxito, su componente estará disponible para que otros desarrolladores de Reflex lo instalen y utilicen en sus proyectos
1
2
.
reflex.dev favicon
franyerverjel.com favicon
2 sources
Related
¿Cuáles son los beneficios de usar Reflex para publicar componentes en PyPI
¿Qué diferencias hay entre publicar un componente en PyPI y en otras plataformas
¿Cómo puedo asegurarme de que mi componente sea fácil de encontrar en PyPI
¿Qué tipo de componentes suelen ser más populares en la comunidad de Reflex
¿Cómo puedo manejar las actualizaciones de mi componente una vez publicado en PyPI