Qué son los Observables ? - Cómo compartir información en Angular ? No problem ! 😉😉

  Рет қаралды 27,547

Gentleman Programming

Gentleman Programming

Күн бұрын

Пікірлер: 153
@felixalexandercarrascosanc3690
@felixalexandercarrascosanc3690 7 ай бұрын
Estoy aprendiendo angular, y cuando veo tus videos son realmente pedagógicos, explicas el porque de las cosas, tomando en cuenta tu experiencia, en muchos casos, cuando se aprende por cuenta propia es importante saber cuando y porque son necesarias algunas implementaciones y usted se toma el tiempo para aclarar eso. Felicidades...!
@JEstebanC
@JEstebanC Жыл бұрын
Lo genial de tus explicaciones es que das un trasfondo y ademas el porque de la buena practica lo cual es super importante para que recuerdes el porque usarlo y hacerlo tambien
@GentlemanProgramming
@GentlemanProgramming Жыл бұрын
Muchas gracias de corazón Juan por tu mensaje!!! ❤️❤️
@JohnDuarte7
@JohnDuarte7 2 жыл бұрын
vi un viaje de videos y perdido vi el tuyo y tines talento para explicar felicitaciones
@carlossantaella3940
@carlossantaella3940 Жыл бұрын
gracias maestro, la explicación de los observables mas precisa y sencilla que e visto y eso que he investigado bastante, lo haces ver fácil un tema que es un poco mas profundo en Angular
@dibuchis
@dibuchis 2 жыл бұрын
Genial, muy bien explicado, gracias por esos 16 minutos tan productivos, porque hay tanto en internet y tan poco como estos videos.
@joseperezbalan7788
@joseperezbalan7788 Жыл бұрын
Muy bien explicado, ya lo habia estudiado como tres veces... pero como que algo no me quedaba claro... hasta que vi tu video..
@DERGONokay
@DERGONokay 2 жыл бұрын
Muy buen video, estaba trabadisimo tratando de solucionar un problema que tengo de una forma elegante y este video me dio la vida. Muchas gracias!
@GentlemanProgramming
@GentlemanProgramming 2 жыл бұрын
De nada Dergon !!! Espero que te haya quedado beautiful ese code !!
@jeisonsalazar71
@jeisonsalazar71 Жыл бұрын
Soy nuevo en el tema de angular, esto es genial. Lo mejor es conocimiento uintermedio que puedo empezar a aplicar. Estoy maravillado. Muchas gracias.
@_josuealonso
@_josuealonso 2 жыл бұрын
Que buen video por dios, 16 minutos explicando lo justo y con ejemplos, objetivo todo, genial me encanto
@GentlemanProgramming
@GentlemanProgramming 2 жыл бұрын
Muchas gracias Josue !!!
@anrras
@anrras 2 жыл бұрын
Mejor explicado imposible, corto y conciso
@mateoduque6935
@mateoduque6935 3 жыл бұрын
Excelente explicación, muchas gracias. Saludos desde Medellín-Colombia (Y)
@GentlemanProgramming
@GentlemanProgramming 3 жыл бұрын
Muchisimas gracias Mateo !!
@josebergues
@josebergues 7 ай бұрын
Descomunal la explicación, impecable y super clara. Ya mismo me suscribo a este canal!
@Omar_Doble_R
@Omar_Doble_R 2 ай бұрын
Excelente video, lo hiciste ver muy facil. saludos
@danielmeza7156
@danielmeza7156 3 жыл бұрын
11:20 - Mostrar la información del Observable en el template html. Usando el pipe "async"
@santiago.rivero
@santiago.rivero 3 жыл бұрын
Excelente como siempre Mister, súper útil. A la espera de más videos cortitos
@GentlemanProgramming
@GentlemanProgramming 3 жыл бұрын
Muchas gracias Santiago !!
@MegaCain16
@MegaCain16 2 жыл бұрын
que capo que sos compartes informacion real que se usa en el dia a dia en el trabajo
@GentlemanProgramming
@GentlemanProgramming 2 жыл бұрын
Gracias miles Abraham ! 🥰🥰 eeeesa es la idea, explicar no solo a nivel conocimiento sino también en experiencia
@juancamilorojas2699
@juancamilorojas2699 2 жыл бұрын
Si a alguien le sirve, tenia un problema y es que tenia el provider en cada componente por lo que es como tener 2 observers, no encontraba el problema hasta que mencionó lo del core module y entendí que ese era el problema. Gracias!
@mpalaciost
@mpalaciost 2 жыл бұрын
Genial la explicación!!!!.. Gracias por compartir tu conocimiento, un abrazo desde Perú.
@GentlemanProgramming
@GentlemanProgramming 2 жыл бұрын
Abrazos desde Españaaaa !! 🔥🔥🔥🔥
@mpalaciost
@mpalaciost 2 жыл бұрын
@@GentlemanProgramming Hola Alan, una consulta: Si de un componente A (en donde estoy enviando un objeto con el servicio A, y en el servicio el objeto estuvo inicializado en null) y me traslado a un componente B, entonces ahí en el init() me suscribo al servicio y recupero el objeto, hasta ahí todo genial. El problema es que estando en el componente B y por alguna razón refresco la pantalla, el servicio se vuelve a crear nuevamente, y el objeto se pone en null (pq asi esta declarado en su parámetro de inicio). ¿Cómo haría para que el servicio no se vuelva a construir después del refresh que le hago a la página?, ya que quiero recuperar ese objeto con el servicio y no quiero usar localStorage o sessionStorage.
@GentlemanProgramming
@GentlemanProgramming 2 жыл бұрын
@@mpalaciost ahí está el tema, así es la cosa jajaja Las cosas se destruyen al refrescar la pagina no hay otra forma. Deberías volver a pedir la información, ya que igualmente es una buena práctica para que no se pueda extraer info de la app de una manera fácil. No queda otra que re popular Si realmente lo quieres así, tienes que utilizar alguna librería como redux-persist o el local storage.
@mpalaciost
@mpalaciost 2 жыл бұрын
@@GentlemanProgramming ok Alan, gracias por darte un tiempo en responderme. Un abrazo!!!
@zerilanka
@zerilanka 3 жыл бұрын
Me sirvió de mucho tu video, por que con eso pude construir un servicio para validar la conexión a internet de mi aplicación, te agradezco.
@GentlemanProgramming
@GentlemanProgramming 3 жыл бұрын
Que bueno Carlos !!! Muy contento que te haya servido, de eso se trata
@carlosriverahn
@carlosriverahn 2 жыл бұрын
Me ha encantado el video, 16 minutos invaluables. Gracias.
@GentlemanProgramming
@GentlemanProgramming 2 жыл бұрын
Gracias miles Carlos !!!
@mareasperez7
@mareasperez7 Жыл бұрын
Siempre vuelvo a ver este video del buen Alan cuando aun tenia el mustacho! para recordar la sintaxis del behavior subject
@GentlemanProgramming
@GentlemanProgramming Жыл бұрын
Ya volvió ! Como tú a ver este content, gracias por el apoyo !
@fernandoandressalas7922
@fernandoandressalas7922 2 жыл бұрын
Me sirvió. Muchas gracias.
@programadorextraterrestre
@programadorextraterrestre Жыл бұрын
Gracias por este video, me ayudó un montón a resolver un problema importante
@carlosmorales1866
@carlosmorales1866 3 жыл бұрын
Sinceramente no había usado esta forma de pasar estado en la aplicación, siempre usaba inputs y outputs, me pareció excelente la explicación :)
@GentlemanProgramming
@GentlemanProgramming 3 жыл бұрын
Muchas gracias Carlos !! como siempre muy contento de que seas un Gentleman Programmer !!
@manuel.gonzalez.10
@manuel.gonzalez.10 2 жыл бұрын
Excelente explicación como siempre. Gracias mister
@GentlemanProgramming
@GentlemanProgramming 2 жыл бұрын
De nada Manu 🥰
@danielmeza7156
@danielmeza7156 3 жыл бұрын
Alan!. Cómo siempre. Muchas gracias. Justo he tenido esa problemática. Por ejemplo con los forms. Siempre con esa dependencia con el componente o la logica para guardar y otro para editar pero usando el mismo form. Y sin querer llegar a utilizar un state manager tan robusto como NgRx.
@GentlemanProgramming
@GentlemanProgramming 3 жыл бұрын
Pasa amigo Daniel... pasa... pero todo viene con la experiencia :) yo en mi caso trato de hacer soluciones propias y de utilizar siempre lo mínimo y necesario
@danielmeza7156
@danielmeza7156 3 жыл бұрын
@@GentlemanProgramming Gracias por tu dedicación con nosotros los nuevos 💪
@ramonmartinez1144
@ramonmartinez1144 3 жыл бұрын
Muy bueno ya lo habia aprendido hace tiempo para atrás pero aprendí algo nuevo al quitar la palabra private en el constructor muy bueno no me la sabia... Igualmente si se necesita modificar la data por x o y motivo en vez de usar el pipe async en el htmo, se pueden susbcribir en el .ts y manejar la data allí. Pero hay que hacer un unsusbcribe o complete del observer para evitar fugas de memoria... Buen Video
@GentlemanProgramming
@GentlemanProgramming 3 жыл бұрын
Si pero hay una mejor manera ! Un pipe async responde siempre a una variable asincrónica, si tienes una variable igualada a un observable y a este le haces un map para modificar sus datos, el pipe va a mostrar el dato modificado. No necesitas hacer subscribe ! :D
@ramonmartinez1144
@ramonmartinez1144 3 жыл бұрын
@@GentlemanProgramming También es valido muy bueno...
@johnovalle4759
@johnovalle4759 Ай бұрын
Excelente aporte de hacer el subscribe, gracias.
@lapiedrangular
@lapiedrangular 3 жыл бұрын
Muchas gracias, casi ningún ejemplo explica como utilizar los datos de los observables en las vistas html, buen aporte!
@GentlemanProgramming
@GentlemanProgramming 3 жыл бұрын
Muchas gracias a tí por el comment ! espero que disfrutes de los otros videos también :D
@danielmeza7156
@danielmeza7156 3 жыл бұрын
07:02 - Método para devolver un Observable sin permiso para emitir un valor a ese observable. Sólo escuchar.
@EduardoMartinez-dm5pp
@EduardoMartinez-dm5pp Жыл бұрын
buenas buenas, guaperas. Amigo, amo tu canal y me ha sacado muchas veces de apuro, tengo un comentario: En el minuto 10:17 usas un "constructor" para hacer la inyección de dependencias, no está mal, depende que versión de angular uses está cool, pero directamente puedes usar un "Inject" para hacer una inyección de dependencias exactamente donde las usas y no de manera global en el componente. Ese "constructor(prviate sharingService: sharingService)" bien podría ser reemplazado por un private sharingService = inject(sharingService); Esa variable puede emplearse en el scope completo de tu componente o bien, puedes usarlo puntualmente dentro de algún método. Esto viene bien, ya que en aplicaciones muy grandes, tendrías un "constructor" super cargado con un montón de inyecciones de dependencias que al final pueden resultar en un antipatrón. Saludos cordiales! que estés de maravilla
@GentlemanProgramming
@GentlemanProgramming Жыл бұрын
Gracias crack !!!! Si si es que esto es de hace unos años ya jajaja todavía no estaba eso :) en nuestro nuevo curso de angular está ;)
@tonytapullimanunez1799
@tonytapullimanunez1799 Жыл бұрын
el CAMILO de la programación!!! bien ahi
@stefanomazziotta1270
@stefanomazziotta1270 2 жыл бұрын
Muy buena la explicación, gracias!
@GentlemanProgramming
@GentlemanProgramming 2 жыл бұрын
De nada Stefanoooo
@danielmeza7156
@danielmeza7156 3 жыл бұрын
8:19 - Enchulando los métodos (buenas prácticas) utilizando "get" y "set" en los métodos del sharingService
@cristianseo
@cristianseo 2 жыл бұрын
Hola, dejeme decirle que es primer vídeo suyo que veo y me gustó bastante, se nota mucho el conocimiento y que sabe el por qué de cada cosa, me ha sacado de varias dudas que me rondaban la cabeza desde hace tiempo, por ejemplo: para qué se ponía asObservable( ), me daba cuenta de que no era estrictamente necesario pero no sabía por qué. También el por qué usar get y set en vez de métodos normales. Uno de los más importantes la diferencia real entre BehaviourSubject y Subject, etc. Me gustaría hacerle una petición ya que explica muy bien. Quisiera que hiciera un vídeo explicando bien el concepto de usar el .pipe al momento de realizar una suscripción y los operadores más usados de RXJS (tap, map, filter, of, from, etc.). Edit: ¡Ya veo que tiene el vídeo en cuestión! (ya me pongo a verlo). Saludos! excelente contenido.
@GentlemanProgramming
@GentlemanProgramming 2 жыл бұрын
YA lo tienes ! kzbin.info/www/bejne/jZm8ZGaNrr1jnac
@cristianseo
@cristianseo 2 жыл бұрын
@@GentlemanProgramming Gracias! Lo vi ayer y sí, excelente, me resolvió también otra gran duda que siempre había tenido y aún así usaba los pipes y operadores RXJS, que es lo que no debería pasar. Usar métodos y características del framework como de forma mecánica sin saber realmente qué es lo que estoy implementando. Una nota curiosa es que en entrevistas de trabajo, preguntan más fácil conceptos como Redux y muchas veces se saltan RXJS, pues yo opino que con sólidos conocimientos de RXJS el concepto de Redux sale fácil. Muy buenos sus vídeos! PD: ¿No ha considerado unirse a plataformas como Platzi por ejemplo? creo que ud es muy buen instructor.
@diegopagini1877
@diegopagini1877 3 жыл бұрын
Excelente. Como siempre!
@GentlemanProgramming
@GentlemanProgramming 3 жыл бұрын
Gracias Dieguito queridoooo cualquier cosa me dices por la comunidad :)
@douglasperez3701
@douglasperez3701 2 жыл бұрын
Pasara el tiempo y siempre me doy una vuelta por aca para dar una repasada ante cualquier bloqueante que tengo jajajaja.
@alexisromero9701
@alexisromero9701 3 ай бұрын
Buen video padrino
@luisgutierrez1481
@luisgutierrez1481 2 жыл бұрын
¡Que excelente contenido!
@rodrigocosentino8716
@rodrigocosentino8716 3 жыл бұрын
este video me salvo ! campanita suscripto y a seguir viéndote jajaja
@GentlemanProgramming
@GentlemanProgramming 3 жыл бұрын
Muchas gracias Rodrigo !!
@josealejandrotrejorivera498
@josealejandrotrejorivera498 3 жыл бұрын
Muchas gracias. Excelente contenido CRACK
@GentlemanProgramming
@GentlemanProgramming 3 жыл бұрын
Gracias a ti por seguirme mister !
@carloseduardohincapiehidal4107
@carloseduardohincapiehidal4107 11 ай бұрын
Hola Gentleman, primero que todo quiero darte las gracias por compartir este conocimiento de una manera tan clara y precisa y segundo tengo una dudad esto también lo podriamos reemplazar utilizando el praton redux con NgRx o son situaciones diferentes
@hernanfloresramirez3163
@hernanfloresramirez3163 Жыл бұрын
Genial!!! una consulta, al cambiar de ruta y enviar una data a un behaviorsubject es posible recuperar dicho valor en la nueva ruta?
@GentlemanProgramming
@GentlemanProgramming Жыл бұрын
El observable es independiente de la ruta, guárdala en un servicio de más alto nivel y se mantiene
@ddgutierrez
@ddgutierrez 10 ай бұрын
Hola Alan! Gracias por tus explicaciones eres un crack! Ahora por la existencia de los Standalone simplemente importamos el servicio en los componentes standalone ?
@GentlemanProgramming
@GentlemanProgramming 10 ай бұрын
Yes ! Fíjate que tengo vídeos sobre cómo usar angular 17 para fetch de info ;)
@GentlemanProgramming
@GentlemanProgramming 10 ай бұрын
kzbin.info/www/bejne/j5OboJiwaKiAeZIsi=VFWwCZIxVi4r4xsg
@logicalMultimediaAgency
@logicalMultimediaAgency 3 жыл бұрын
Maravilloso!
@marieltorres2873
@marieltorres2873 2 жыл бұрын
gracias por tu video era la explicación que necesitaba, te consulto cuando usas el set en el component, es necesario hacerlo desde ahi o podría también utilizar mi set en mi component lazy donde ya había utilizado el get?
@GentlemanProgramming
@GentlemanProgramming 2 жыл бұрын
En mi caso lo hago generalmente en otro componente, si lo haces en el mismo asegúrate de que no lo hagas dentro del mismo subscribe porque sino se te haría un ciclo infinito
@ddgutierrez
@ddgutierrez 10 ай бұрын
Hola Alan! Como estas ! Estoy estudiando los signals y queria hacerte una consulta. Como podriamos escribir esta forma de compartir informacion pero con signals ? Se puede? Saludos!
@GentlemanProgramming
@GentlemanProgramming 10 ай бұрын
Directo de mi segundo canal kzbin.info/www/bejne/j5OboJiwaKiAeZIsi=Ouk9nApqOAHm0ey3
@ddgutierrez
@ddgutierrez 10 ай бұрын
@@GentlemanProgramming gracias!!
@marianobagnarelli4581
@marianobagnarelli4581 3 жыл бұрын
Buenisimo loco
@GentlemanProgramming
@GentlemanProgramming 3 жыл бұрын
Muuuuchas gracias Mariano !!
@juancarloslopezcarrasco276
@juancarloslopezcarrasco276 Жыл бұрын
¿Esto se mejora con los signals y effect de la v16?
@ormenodiego147
@ormenodiego147 Жыл бұрын
y con standalone components? porque generaria una instancia distinta para cada componente no?
@danielpinilla9679
@danielpinilla9679 2 жыл бұрын
Podria almancenar el token JWT en un BehaviorSubject para no tener que guardarlo en localsorage ? segun entendi este BehaviorSubject puede persistir un valor y acceder a el cuando se necesite, no se si lo podria usar para este cometido.
@GentlemanProgramming
@GentlemanProgramming 2 жыл бұрын
No porque cada vez que navegues a otra tab, recargues la pantalla o lo que sea tendrías que volver a loguearte, el behaviorSubject solo tiene un cache ligado a la sesion.
@andreaviola640
@andreaviola640 2 жыл бұрын
Consulta esto del sharingService también serviría para traer datos desde una base de datos?o ahí si o si hay que usar get y set?
@GentlemanProgramming
@GentlemanProgramming 2 жыл бұрын
Hola Andrea ! Para traer datos de la base de datos tienes que utilizar el módulo http module y utilizar el http client para hacer la llamada a los endpoints que brinda el backend. Esto sería más que nada para compartir información dentro de la aplicación
@andreaviola640
@andreaviola640 2 жыл бұрын
@@GentlemanProgramming si lo intento pero sigue sin mostrarme lo que le pido que traiga...y no encuentro el error en el código, usé los mismos métodos en el frontend y en backend pero aún así no logro q se conecten y estoy utilizando httpClient,pasándole la URL de la base de datos y en cada método tengo declarado el path que debe seguir....😣
@GentlemanProgramming
@GentlemanProgramming 2 жыл бұрын
@@andreaviola640 es que la base de datos no se conecta con el front end sino con el backend. El backend tiene que crear una Api con urls, cada url determina una acción posible sobre la base de datos. Creo que te está faltando hacer el back
@andreaviola640
@andreaviola640 2 жыл бұрын
@@GentlemanProgramming el back lo tengo hecho con java en Netbeans,con la base de datos se conecta,pero cuando llamo a los datos en el frontend usando métodos con la misma funcionalidad que los q declaré en el back no me trae nada...
@GentlemanProgramming
@GentlemanProgramming 2 жыл бұрын
@@andreaviola640 hmmm pero dan status 200 y no tiene resultado ? O dan error ? Puede ser que en el back no se estén devolviendo las cosas en el body. Pero parecería que el problema está por ahí. En el front si ni si ejecuta la lógica no te olvides de subscribirte a las llamadas !
@gabrieltrossero8290
@gabrieltrossero8290 Жыл бұрын
Te hago una consulta, este problema no los tienen los array, no? Porque hice el mismo ejemplo de usar un servicio entre dos componentes, y se actualizan.. Quizás sea por el push()?
@GentlemanProgramming
@GentlemanProgramming Жыл бұрын
No deberían, trata de que el array esté definido en el servicio y tengas dos métodos, uno te devuelve el array y otro le mete valores. Ahora consume el array desde un complejo te por uno de los métodos y ahora envía cambios al array desde otro que sea hermano del mismo
@gabrieltrossero8290
@gabrieltrossero8290 Жыл бұрын
@@GentlemanProgramming gracias por la respuesta. Justo hoy a la tarde se me ocurrió preguntarle a ChatGPT esta duda ya que estuve varias varias horas buscando porqué tenía este comportamiento diferente los array y las variables, y esto fue lo que me respondió: Las variables en un servicio no se reflejan automaticamente en los componentes que utilizan porque el componente obtiene una copia de la varibale. En cambio, cuando se modifica un array, esto se ve reflejado en los componentes que lo están utilizando porque el componente está utilizando la misma referencia del array que se encuentra en el servicio. Espero que sirva de aporte.
@GentlemanProgramming
@GentlemanProgramming Жыл бұрын
@@gabrieltrossero8290 ah una cosa, puedes acceder a los datos sin problemas, el problema es que no vas a saber cuando se ha realizado el cambio y ahí es cuando los observables nos dan una mano
@mauriciocucco4466
@mauriciocucco4466 3 жыл бұрын
Excelente, yo me fui a Ngrx sin conocer el BehaviorSubject
@GentlemanProgramming
@GentlemanProgramming 3 жыл бұрын
aunque no lo creas... es MUY normal ! generalmente nos vamos a utilizar frameworks y librerias sin aprender las bases de las mismas. Así que no te sientas mal que es lo más común del mundo jajaja :D
@davidmontoya2787
@davidmontoya2787 Жыл бұрын
Grande Alan, me sirvió mucho saber estos conceptos, bro me resultan unas dudas, se hace de la misma forma con data que viene del back?. Es que no se si estoy haciendo bien, resulta que tengo 2 componentes y en ambos llamo el servicio el cual tiene el endpoint con httpClient etc, me funciona todo bien. La duda es que en ambos componentes me debo suscribir a fuerza?, o se puede hacer con este método que indicas?. La otra duda es que en cierto componente necesito solo 2 datos de la entidad usuario, pero no body de respuesta viene con muchos datos de ese usuario, en ese caso podría hacer un pipe con un map para obtener sólo esos 2 datos?, eso sería más óptimo?, o sería mejor hacer un endpoint que me devuelva solo estos 2 datos (O ya es exagerar?), es que ahora mismo ando haciendo muchas peticiones en varios componentes que necesitan esa misma entidad, pero creo que lo que explicas en el video es el camino. Ando apenas aprendiendo bien estos conceptos entonces si ando un poco enredado. Y por último siempre que sea una petición que viene del backend toca suscribirse o se puede como decías con el async?, y en caso de suscribirse a la petición siempre toca pasar la suscripción por el ngDestroy() ?. Disculpa lo extenso, pero la verdad ando muy enredado 😅. Gracias bro y que Dios te siga bendiciendo con ese don de la enseñanza. 💪🏻
@julianpatino6622
@julianpatino6622 11 ай бұрын
Tiene curso completo en Udemy? Yo lo compro. Muy bien explicado.
@GentlemanProgramming
@GentlemanProgramming 11 ай бұрын
No no, tengo cursos completos aquí en youtube, quiero que sea gratuito para ustedes
@iamjosedev
@iamjosedev 2 жыл бұрын
Hola, tengo una duda. ¿Esto serviría como el localStorage para guardar información del usuario en su propio navegador?, no quiero guardar información y luego este sea visto por todos los conectados en la pagina web o que cada vez que un usuario ingrese actualize para todos los conectados anteriormente. Saludos Cordiales.
@GentlemanProgramming
@GentlemanProgramming 2 жыл бұрын
Si, pero solo vive en memoria del navegador hasta que refresca la pantalla. Es justamente para compartir información de manera volátil
@urtaav639
@urtaav639 2 жыл бұрын
Buen video, una consulta, si en mi aplicación cargo catálogos preseleccionados dependiendo el usuario, para llenar estos catálogos hacer lo dle video me serviría, es decir si al loguearme trago la data de los catálogos y la emito, podre usar esa data en diferentes módulos, seria buena práctica o por cada componentes donde use los catálogos hacer la petición? Eso no se me hace viable :c
@GentlemanProgramming
@GentlemanProgramming 2 жыл бұрын
Si se usa en todos lados, dale nomas desde el mínimo padre de ellos. Eso quiere decir, que si tienes 2 modulos, y dentro de uno de ellos usas info repetida, solo haz la peticion en ese módulo en particular y no en el padre de los dos primeros
@campeone3
@campeone3 Жыл бұрын
Hola gentleman, estoy tratando de hacer un servicio donde me traiga un json en ingles o espaniol dependiendo si en el header se cambia de idioma pero cuando cambio el idioma en el header llega hasta el servicio el cambio pero no se actualiza en los demas componentes desde donde toman los datos. Se que con esto del behaviour Subject lo puedo hacer pero no le doy a como.
@LeonardotIBK
@LeonardotIBK 2 жыл бұрын
Hola amigo, una consulta, estoy usando el BehaviorSubject, al usarlo entre componentes dentro de un mismo módulo va todo bien, pero cuando quiero usarlo entre componentes de distintos módulos se pierde la información, ¿Cómo debo hacerlo entre módulos?
@GentlemanProgramming
@GentlemanProgramming 2 жыл бұрын
Hola ! eso es porque tu behaviorSubject tiene que estar declarado en un módulo que comprenda a ambos módulos hijos qdonde quieres compartirlo, sino no se puede. Fijate como es la injección de dependencias entre módulos en Angular. Espero haberte ayudado !
@marcosgalaviz4904
@marcosgalaviz4904 2 жыл бұрын
Excelente explicación, pero una duda :), si quiero suscribirme a ese Behavior por ejemplo en otro servicio o en un guard para obtener un dato del usuario ¿es un problema de rendimiento? ¿tengo que desuscribirme?, muchas gracias por tus excelentes aportes
@GentlemanProgramming
@GentlemanProgramming 2 жыл бұрын
Hola ! Es mucho mejor, si quieres el dato de un user para un momento en específico (que es lo que generalmente pasa en un guard o un servicio), solo te interesa el valor contenido dentro del behavior para ese momento en particular. Para ello puedes usar “.value” para obtener el valor sin subscribirse, eso te devolverá el último elemento que haya pasado por el behavior. Recuerda que esto es algo propio de los BehaviorSubjects gracias a su buffer interno que almacena siempre el último valor enviado. Espero haberte ayudado !!
@augustocontreras692
@augustocontreras692 3 жыл бұрын
Hola Buen dia llegue a este video tratando de entender que son los observables, me ha sido util pero tambien me surgieron interrogantes que paso a detallar. Porque no usas el metodo suscribe en el componente, que tan necesario es hacerlo, cuando si y cuando no?. Muchas gracias por el video y agradeceria la aclaracion.
@GentlemanProgramming
@GentlemanProgramming 3 жыл бұрын
Hola ! Porque si te subscribes tienes que de subscribirte ! Siempre en el ondestroy, esto hace que sea un paso que puede que te olvides y puede generar los llamados memory leaks. El pipe async soluciona esto al hacerlo de manera automática. Te recomiendo mi vídeo de memory leaks aquí mismo en el canal.
@augustocontreras692
@augustocontreras692 3 жыл бұрын
@@GentlemanProgramming Gracias por la respuesta, lo tendre en cuenta. Recien estoy empezando con angular y no lo vimos tan a fondo, en mi caso tengo un boton cuyo texto y color cambia al hacerle click. Se pasa el click desde el template al componente que llama al servicio y se suscribe al observable (que actualiza un booleano a true o false ) que luego usamos para actualizar el boton. Estaba tratando de hacerlo de otro modo sin suscribe pero no logre nada.
@GentlemanProgramming
@GentlemanProgramming 3 жыл бұрын
@@augustocontreras692 los observables sólo Sirven para compartir información entre diferentes componentes. Si solamente quieres cambiar el color de un botón de acuerdo a una propiedad lo que tienes que hacer es crear una propiedad dentro del componente que luego aplicaras en el templete dentro de un ngClass. Si la variable tiene un valor le aplicas una clase sino otra. Y el valor de la misma lo cambias con el click. Los observables no son una solución para todo, se utilizan para casos específicos en los cuales quiere compartir información entre componentes que son distintos y estos van a reacción de manera diferente acorde al valor que reciban. Para más de esto fíjate que tengo un vídeo de Programación reactiva :)
@augustocontreras692
@augustocontreras692 3 жыл бұрын
@@GentlemanProgramming Tambien hay un template con un formulario que usa ese booleano en una propiedad ngIf para mostrar u ocultar el formulario. Aparentemente asi el componente del boton como el del formulario pueden enterarse cuando se hace click en ese boton 'agregar tarea'. Gracias por la sugerencia, voy a mirar mas de tus videos seguramente encontrare mas cosas sobre Angular.
@SergioUkrAr
@SergioUkrAr 2 жыл бұрын
Muchas gracias), pero BijaviorSubject es poderoso, pero no es mejor usar NGRX?, si un poco mas escript pero facil obtener data.
@GentlemanProgramming
@GentlemanProgramming 2 жыл бұрын
Ngrx puede ser demasiado para algo súper simple como compartir información entre componentes, se utiliza para almacenar entidades que pueden ser reutilizadas en TODA la app, no solo en una vista. También para los que recién empiezan puede ser bastante tedioso de aprender, desde el uso de los reducers y las acciones hasta la implementación de efectos.
@SergioUkrAr
@SergioUkrAr 2 жыл бұрын
@@GentlemanProgramming Gracias)
@TheMindoflears
@TheMindoflears Жыл бұрын
Me sirvió demasiado! pero tengo una pequeña duda, cómo se puede hacer para que el valor que se muestra (por ejemplo "la información cambio") no se cambie, ya que si refresco la página, de nuevo dice "Gentleman Programming"
@alejandroelias868
@alejandroelias868 Жыл бұрын
Deberías almacenarlo en una variable en el localstorage o usando redux.
@gustavovelazquez9495
@gustavovelazquez9495 Жыл бұрын
HJola. recien encuentr tu canal, por favor agrandarias la fuente del editor? gracias
@GentlemanProgramming
@GentlemanProgramming Жыл бұрын
Es un vídeo bastante viejo, ya los nuevos deben de estar perfect !
@samuelmorales2919
@samuelmorales2919 3 жыл бұрын
Excelente explicación, solo que deberías subir los videos en HD o 720 por lo menos, pero de antemano muchas gracias :D
@GentlemanProgramming
@GentlemanProgramming 3 жыл бұрын
recarga ! eres de las primeras visitas jajja, recién estaba subido y siempre tarda un poco en renderizar pero ya esta en 1080p y a 60 fps :)
@danielmeza7156
@danielmeza7156 3 жыл бұрын
@@GentlemanProgramming Buenisimo!!
@samuelmorales2919
@samuelmorales2919 3 жыл бұрын
@@GentlemanProgramming muchas gracias, es que tengo la campanita activa y me notifica :D. muchas gracias.
@GentlemanProgramming
@GentlemanProgramming 3 жыл бұрын
@@samuelmorales2919 Muchas gracias por esooo, me pone super contento de tener gente que espera mis videos :) Cuanto más pueda ayudar, más feliz soy !!!
@paollarce5137
@paollarce5137 2 жыл бұрын
¿Es posible hacerlo con un array de objetos tambien?
@GentlemanProgramming
@GentlemanProgramming 2 жыл бұрын
Yes Paol ! Totalmente :)
@giancarlo3974
@giancarlo3974 2 жыл бұрын
Como hacer la información compartida persistente sin que se pierda al actualizar la página o componente?
@GentlemanProgramming
@GentlemanProgramming 2 жыл бұрын
Buenas ! tienes que guardarlo en el local storage, aunque no la verdad no lo recomiendo ya que puede causar problemas de seguridad. Algunos tips sobre cúando y cómo usarlo: 1- NUNCA guardes información sensible en el local storage 2- Único caso donde usarlo es cuando sabes 100% que la información no cambia o esta solo puede ser accedida por un único usuario 3- En sistemas donde multiples usuarios pueden accionar sobre la información y accederla al mismo tiempo ya no sirve practicamente porque siempre estaría desactualizada.
@MrEldetective007
@MrEldetective007 2 жыл бұрын
lo hice igual a como estaba echo y no funciono(solo la primera ves carga en cuando entra a NgOnInit el valorpor defecto, luego de eso ya no escucha los cambios), puede ser porque uno de mis 2 componentes forma parte de otro componente dentro de ng - content?(estoy utilizando un componente de modal popup que crea un modal con ng content), que podría hacer para que si los escuche a los cambios. Seleccionar ubicación del contenedor Seleccione la ubicación que desee como se puede ver app-mapa-seleccion esta dentro de los tags de y luego esta en la estructura del form. lo que estoy intentando hacer es seleccionar una localidad de un combo de selección y luego pintar en un mapa de leaflet mediante un geojson, pero el observavle no esta funcionando y pienso que es por eso de ng content. Buen video, explicas muy bien, saludos
@GentlemanProgramming
@GentlemanProgramming 2 жыл бұрын
Hola ! Podrías enviar el código de ts? También te invito al discord de la comunidad, por ahí es más fácil hacer la consulta por ahí. Fíjate que sea un behaviourSubject por si uno se subscribe antes que el otro. También fíjate que sea la misma instancia del servicio, trata de que la declaración del mismo se haga en el módulo que declara a los dos componentes.
@MrEldetective007
@MrEldetective007 2 жыл бұрын
@@GentlemanProgramming gracias, estoy realizando mi tesis final de Analista Programador y ahora estaba trancado con este tema, la instancia puede ser distinta, la cree en cada componente
@fernandorodriguez5036
@fernandorodriguez5036 2 жыл бұрын
Hola, excelente video. Intendo hacer lo mismo pero me sale linea roja y el error dice "cannot assign to '__nombreVariable__ ' because it is a read-only property, en mi AppModule.ts cuando intento asignar un objeto como lo hiciste al final del video para cambiar el estado del behavios subject. Si alguien pudiera ayudarme, gracias.
@juandanielbombelarivera5893
@juandanielbombelarivera5893 2 жыл бұрын
¿Cómo se podría recuperar la información si se refresca la página?
@GentlemanProgramming
@GentlemanProgramming 2 жыл бұрын
Ahí está el asunto verdad? La solución son los local storage ! Hay que tener un balance muy justo entre que información almacenar, trata de que sea lo menos posible y nada con carácter sensible.
@danabaiardi5452
@danabaiardi5452 2 жыл бұрын
@@GentlemanProgramming como buena practica que se puede almacenar en local storage en un app real.. o es recomendable utilizar solo un state manager?
@GentlemanProgramming
@GentlemanProgramming 2 жыл бұрын
@@danabaiardi5452hola ! Generalmente es recomendable en el state de la app, y que cada vez que se recargue se vuelva a buscar la información. Si necesitas que se guarda aún en recarga, debes de ofuscar la información aplicando algún algoritmo. Si es información que tiene otro tipo de seguridad (como lo es un token que luego se refresca y se válida en el back) no pasa nada :)
@minitoy1070
@minitoy1070 2 ай бұрын
Quizá mi comentario se pierda, pero no me quedo claro de que forma se entera el componente que la información ya esta servida, en el caso de hacer una solicitud HTTP
@GentlemanProgramming
@GentlemanProgramming 2 ай бұрын
@@minitoy1070 si es el mismo componente por el uso de promesas y entre componentes distintos por el uso de observable ! El observable es el canal de comunicación y luego cada componente se pone a escuchar qué pasa por el mismo, reaccionando a la información que pase por él.
@minitoy1070
@minitoy1070 2 ай бұрын
@@GentlemanProgramming Gracias lo practiqué ayer y me quedo más claro , ahora con tu explicación queda todavía más claro me suscribo 😁
@michaeltorresospina9993
@michaeltorresospina9993 2 жыл бұрын
donde consigo esa camisa ? jajaja
@GentlemanProgramming
@GentlemanProgramming 2 жыл бұрын
PULL & BEAR 🐻 😬
@michaeltorresospina9993
@michaeltorresospina9993 2 жыл бұрын
@@GentlemanProgramming con este video me salvaste en el trabajo!!
@GentlemanProgramming
@GentlemanProgramming 2 жыл бұрын
@@michaeltorresospina9993 vamooooooo, muuucha alegria al leer eso 🥹🥹
@ricardotilleriaochoa5674
@ricardotilleriaochoa5674 4 ай бұрын
crack
RxJS - La library más importante sobre observables !! 🙏🙏
28:34
Gentleman Programming
Рет қаралды 10 М.
REAL or FAKE? #beatbox #tiktok
01:03
BeatboxJCOP
Рет қаралды 18 МЛН
Арыстанның айқасы, Тәуіржанның шайқасы!
25:51
QosLike / ҚосЛайк / Косылайық
Рет қаралды 700 М.
BAYGUYSTAN | 1 СЕРИЯ | bayGUYS
36:55
bayGUYS
Рет қаралды 1,9 МЛН
Observables en #ANGULAR y #RxJS
31:42
Programación en español
Рет қаралды 11 М.
[2] Crea tu Primer Componente  [Curso Angular Moderno (19+)]
36:24
Uso de Observables en Angular
18:51
10 Minutos Programando
Рет қаралды 27 М.
Angular Basics - Observables
30:35
akotech
Рет қаралды 13 М.
Cómo usar Observables en Angular paso a paso
28:00
Garaje de ideas | Tech
Рет қаралды 18 М.
Diferencia entre un Subject y un BehaviorSubject #rxjs
6:33
Domini Code
Рет қаралды 3,5 М.
Rxjs & Observables en Angular #TechTalk
47:57
Kevin Davila
Рет қаралды 8 М.