[React] Hilo General - Una librería para atraerlos y atarlos a todos

B

que estais usando para gestionar los estilos?

me he pasado a styled components y me parece muy util, no tengo clara todavía la parte de los temas, con typescript para que detecte las cosas tengo que hacer una pirula con el tipo del tema y si quiero meter cualquier variable la tengo q meter en el tema y en el tipo

tengo alguna duda tambien con como plantear la parte responsive, supongo q por algun lado se declaran unos breakpoints, me gustaria hacerlo con nombres y luego desde el componente poner css para esos nombres en plan mobile, tablet, pc

he estado viendo Rebass, Theme UI, styled system y está todo muy bien pero no me convence porque es demasiada magia, en el tema tienes un array de fontSizes y luego en el componente usas fontSize={2} y te pilla el elemento 2 de ese array del tema, es demasiado magia y con typescript no queda claro

2 respuestas
isvidal

#751 tailwind o chakra, no te compliques

1 1 respuesta
Zoko

#751

En el curro usamos Styled Components, a mi me gusta bastante pero claro es distinto trabajar con diseños de diseñadores que no tener nada y tener que imaginar tu lo que quieres hacer.

En el sideproject empecé a usar tailwind y acabé un poco frustrado por no estar familiarizado con sus "shorthands". Pero creo que la frustración también venía de tener que diseñar yo absolutamente todo. Por eso para sideproject acabo usando Chakra, y si necesito que luzca de manera diferente pues lo customizo.

Para el tema del theme es muy facil con Chakra.

1 2 respuestas
Lolth

#753 Lo mismo por aqui, con Chakra le metes tu theme perfecto, aparte es compatible con Styled Components por si necesitas algo ligeramente distinto, es decir puedes hacer un styled.Flex``por ejemplo y funciona.

1 1 respuesta
B

#752 #753 #754 gracias, no se porque tenía la idea de que Chakra era como Tailwind y eso no es lo que busco, he estado mirando y Chakra hace todo lo que necesito, tiene lo de los temas, responsive...

1 respuesta
TheBrotha

#755 En tailwind tambien puedes extender temas, meter responsive etc. Depende de lo que vayas hacer igual te renta mas uno que otro. A mi chakra me mola por como esta montada la api para extender el theme mas de una vez (osea, mas de los estilos por defecto o cosas asi)

1
8 días después
thelegend

Acabo de descubrir XState y me parece muy chulo, ¿lo habéis probado? ¿Qué os gusta más Xstate o redux?

2 respuestas
neoline

#757 Redux con Redux Toolkit.

B

#757 no es lo mismo pero desde que uso react-query me apaño perfectamente sin redux

1 respuesta
isvidal

#759 SWR tambien esta muy bien.

6 meses después
smarquezp

¿Alguno os habéis visto esta lista de midudev?
Realmente sigue el curso de fullstackopen pero da sus pinceladas y no tiene mala pinta. Voy a empezar a ver React con él, espero aprender algo jajajajaja

https://www.youtube.com/playlist?list=PLV8x_i1fqBw0Kn_fBIZTa3wS_VZAqddX7

2 respuestas
jepeme

#761 sirve para aprender pero no es realmente un curso como tal. Si no sabes absolutamente nada yo creo que hay cosas mejores.

1 respuesta
smarquezp

#762 Como tal se, he tocado React hace un tiempo pero no me metí mucho de lleno y tengo que recordar. Por eso tal vez esto me venía bien, porque la base la tengo pero no tengo conocimientos muy profundos

JackWhy

#761 midudev es top dentro de los divulgadores frontend españoles, lo recomiendo

2
B

Yo la verdad que desde que descubrí svelte, ni React ni Next. Sveltekit.
Pero sin duda midudev es un crack.
Últimamente mi prime va para él.

Esa lista lo malo es que es un conglomerado de vídeos sin orden alguno 🤷‍♂️

1
1 mes después
vrc

como planteariais esta situacion:

tengo una barra de navegación y en cada pantalla quiero poner unos botones distintos

en la pantalla 1 quiero un boton, en la pantalla 2 otr, en la pantalla 3 otro distinto, y así

puedo hacerlo en el propio componente de la barra pero no me parece limpio porq si un dia hay una 4º pantalla tengo q tocar la pantalla y la barra

sería más correcto tener un estado (context, redux o lo q sea) para la barra y que cada pagina ponga en ese estado los botones que hay mostrar?

1 respuesta
TheBrotha

#766 Como tienes ordenada las jerarquias? Probablemente con composición puedas evitar tirar de redux/context, a ver cómo tienes todo ordenado?

1 respuesta
vrc

#767 es para un proyecto nuevo y todavia no hay nada, estoy pensando como hacerlo

mi caso concreto no es exactamente eso pero es lo mismo, tengo un componente q se comparte entre paginas pero con un contenido distinto, lo q no quiero es incluir ese componente en cada una de las paginas, quiero tenerlo solo una vez en el layout general y cambiar lo q muestra sin acoplarla en si

es parecido a compartir un layout entre rutas aunq en mi caso no son rutas, son pasos de un wizard

tengo wizard y wizard step, wizard tiene en el estado el paso actual, y pinta la barra y el wizard step

1 respuesta
TheBrotha

#768 en ese caso no te vale con pasar también el step a la barra y mostrar lo que quieras según eso?

1 1 respuesta
vrc

#769
lo q no tengo claro es como hacer el step para q tenga su contenido en si, y luego el de la barra

en este articulo hay un ejemplo q es com no lo quiero hacer, ahi los ifs van dentro de la barra y no en la pagina en si

https://cbi-analytics.nl/react-navbar-with-conditional-menu-items/
https://codesandbox.io/s/react-conditional-navbar-9csd21?from-embed=&file=/src/Navbar.js

This example is hard coded. If you have a big application that it changing a lot it is better to find a more dynamic way to solve this. Perhaps by storing the structure of the menus and the permissions per group in your database.

Esa es la parte que quiero hacer dinamica y que dependa de la pagina/step sin ir hardcodeado en la barra

seria algo asi como tener step.body y step.header

1 respuesta
TheBrotha

#770 Puedes crear un HOC que acepte dos props, una el contenido de la pagina (step.body) y el otro la lista de elementos a mostrar (step.header), luego cada pagina la haces metiendo ambos elementos y creo que es justo lo que quieres

Básicamente usar el slot pattern https://dev.to/hryggrbyr/using-slots-in-react-pcp en un compo que solo se encargue de hacer el layout y ordenar esos dos componentes

1 respuesta
isvidal

#771 body es children no hace falta otro prop

2
JuAn4k4

Pensáis en componentes cuando deberíais pensar en estado. La UI es una máquina de estados.

Tu app está en el paso 2, se ven los botones del paso 2. Fin.

3 2 respuestas
TheBrotha

#773 Yo entiendo lo mismo, si estas en el paso 2 y estas ya controlando el step dentro del estado, ya tienes todo lo necesario para mostrar solo los botones del step 2, no veo necesario nada de context / redux

1 respuesta
vrc

#774 #773 mi duda concreta era donde van esos botones, porq ahora mismo tengo el wizard q lo unico q sabe es en que paso esta y segun el paso pinta paso2.botones y paso 2.contenido, y tengo 2 archivos para cada paso

no tengo un contendor de botones con 30 botones q se ocultan segun el paso, le paso lso botones concretos q tiene q pintar

1 respuesta
JuAn4k4

#775 ¿ En que se diferencian los botones ? Siempre puedes meter esa lógica en un map o en 30 ifs. Aunque todo depende de en qué se diferencien.

27 días después
LR

Levanto esto para una duda que no se ya que buscar o como resolverla.

Tengo un contexto, su provider y demas.
Me he puesto a mirar de organizar un poco el codigo y he querido extraer de un useeffect la llamada a la api para tenerlo todo bien ordenadito.
Problema? una vez que lo saco me peta. Se que el problema este seguramente en el provider ya que me estara cargando todo sin actualizar el estado, pero no se como coño solucionarlo. Ya digo, si dejo la llamada en el useeffect, me funciona sin problemas, si lo extraigo a un servicio para aislar las peticiones y simplemente pasarle los datos al useeffect del context, me peta.

La idea es no usar redux.

Por si me he liado un poco explicandolo,

esto sirve:

useEffect(() => {
    axios.get(URL)
      .then((response) => {
        const { data } = response
        setList(data)
      }) 
  }, [])

esto también sirve:

useEffect(() => {
    const fetchData = async () => {
      const data = await getAll()
      setList(data)
    }
    fetchData()
  }, [])

esto no:

useEffect(() => {
    getAll().then((data) => {
        setList(data)
      })
  }, [])
2 respuestas
isvidal

#777 usa swr y olvidate de context y redux

1 respuesta
LR

#778 le echaré un ojo

Ya por curiosidad y aprender, donde coño está el fallo/problema y por qué?

Lolth

Siempre estás a tiempo de usar react query y te olvidas de redux y cosas parecidas