Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jun 13 2015 03:18

    sergiodxa on master

    Added Gitter badge Merge pull request #1 from gitt… (compare)

  • Jun 13 2015 03:18
    sergiodxa closed #1
  • Jun 13 2015 03:17
    gitter-badger opened #1
Sergio Daniel Xalambrí
@sergiodxa
también fijate con chown para cambiar que el dueño sea tu usuario y no root
Miguel Alejandro Viñan Hidalgo
@mvinan
genial!! @sergiodxa, no se como se pone el usuario root, soy novato en eso, pero efectivamente solo le hice el cambio con chown al package.json que era el que no me dejaba escribir sobre el sin el comando sudo. Funciono !!
cambie con chown a mi usuario el package.json y listo, Gracias :)
Sergio Forés
@t0t
@josejaguirre no, no lo he usado, me refiero a un servicio cualquiera que te haga de servidor de correo.
Miguel Alejandro Viñan Hidalgo
@mvinan
hola @sergiodxa , vi uno de tus post sobre React, me podrías por favor dar una breve explicación o mejor dicho quitarme de la ignorantada, cual es la diferencia que renderea React desde el servidor y la que renderea desde el navegador ? puedo usar cualquiera que este a mi gusto ?
cual seria mejor? así prácticamente ya nunca meteremos etiquetas html.?
Sergio Daniel Xalambrí
@sergiodxa

Si renderizas usando:

React.render(<App />, document.body)

Lo que hace React es renderizar el componente App y colocar el DOM generado en el <body>, si usas:

React.renderToString(<App />)

Lo que hace React es devolverte un string cuyo contenido sea el código HTML que generaría el componente App, por ejemplo si el componente App renderiza un div que dice hola mundo entonces renderToString devolvería '<div>hola mundo</div>'
La diferencia es que .render() aplica el VDOM generado automaticamente al elemento del DOM que le indicas (document.body o el que hayas colocado), mientras que .renderToString() solo genera el string y no hace nada más.

Como .render() se aplica automaticamente al DOM no sería posible usarlo en el backend, solo en frontend, además .render() también hace que si hay un cambio en uno de los componentes se vuelva a renderizar.

El otro método (.renderToString) se podría usar tanto en backend como en frontend, aunque como no volvería a renderizar al haber un cambio en el frontend no tiene mucho sentido y el mayor uso está en el backend donde podrías generar un string con todo el HTML de tu página y enviar ese string al navegador del usuario para que lo lea como HTML común y corriente.

Sergio Daniel Xalambrí
@sergiodxa

Luego de renderizar el HTML en el servidor como un string y enviarlo al usuario podés ejecutar .render() en el navegador y React se va a acoplar con el HTML que hayas generado en el servidor gracias a que React agrega un atributo data-reactid a todos los elemenots que genera y que utiliza para identificarlos, de esta forma React al iniciarse en el navegador se da cuenta que el HTML del sitio fue generado por React y si no hay un cambio entonces simplemente se queda esperando que los datos cambies y no vuelve a renderizar toda la página.

De esta forma podés hacer que tu aplicación genera el HTML de cualquier ruta en el servidor y una vez que inicia React en el navegador usar React (junto a react-router) para volver a renderizar la página si el usuario se va a otra parte de tu aplicación o hay algún cambio en los datos, permitiendote combina un aplicación web tradicional con una SPA.

Miguel Alejandro Viñan Hidalgo
@mvinan
Gracias
Miguel Alejandro Viñan Hidalgo
@mvinan
Creo que a mi parecer es mejor desde el servidor. :smile:
Sergio Daniel Xalambrí
@sergiodxa
Si solo usas React en el servidor te estarías perdiendo las mejores cosas de React
Miguel Alejandro Viñan Hidalgo
@mvinan
Mmmm bueno, entonces el equilibrio perfecto seria usar en los dos server y cliente . ? O que es lo tu crees. ?
Sergio Daniel Xalambrí
@sergiodxa
Exacto, usalo en el servidor para que cuando el usuario entra a tu sitio recibe el HTML con el contenido ya generado en el server con React y luego usalo en el navegador para iniciar una SPA usando React para que si hay cambios en la información la vista se actualice automaticamente gracias a React y además si el usuario quiere ir a otra vista de tu aplicación como ya iniciaste una SPA no necesita recargar, simplemente obtenés los datos por AJAX y los mostras con React
José Aguirre
@josejaguirre
La solución de hacer que react este en el server es para que no envies un index desde el backend en blanco ya que si lo haces tu página no estaría enviando información para ser indexada por los motores de busqueda, ese es problema principal de los SPA, por eso algunas plataformas trabajan con aplicaciones hidridas, vistas en el server y vistas en el cliente
Pero antes de hacer un proyecto usando spa o hibridos necesitas definir bien la arquitectura de tu app, y diseñar bien el flujo de interacción
Por que trabajando en el backend y en el frontend al mismo tiempo es muy facil perderse y hacer desastres en un proyecto
Cuando es medio/grande
Sergio Daniel Xalambrí
@sergiodxa
El que mande un index en blanco no es solo un problema de SEO (que igual es importante), también es un problema de UX, si tu sitio tarda 5s en terminar de descargar todo el JS y después además hay que hacer peticiones AJAX para obtener los datos lo cual supongamos que toma 1s más entonces desde que el usuario recibió el index en blanco hasta que al fín pudo ver contenido pasaron 6 segundos, mientras que si mandas el index con contenido ya desde el servidor el usuario en cuanto descargue el index (que siempre es lo primero que se descarga) ya tiene el contenido, luego si el JS tarda 5 segundos en descargarse ya no molesta tanto (igual importa) porque al menos ya está viendo información
José Aguirre
@josejaguirre
Tienes toda razón ! @sergiodxa ese es otro problema
Miguel Alejandro Viñan Hidalgo
@mvinan
Si, viéndolo así genial !!
pokaxperia
@pokaxperia
oigan, alguien recuerda el proyecto de marvel, del curso de frontend?
por que despues de separar por componentes, antes de iniciar el video de gulp, marca error de que no encuentra GET http://localhost:8080/login 404 (Not Found).
También ya clone el repo de github, y marca el mismo error, de que no encuentra /login, pero de ahi en fuera, no marca ningun otro error de codigo u algo asi
a alguien le ha pasado?
pokaxperia
@pokaxperia
de hecho, no se compila el index.jade a index.html, no aparece ningún index.html
José Aguirre
@josejaguirre
Tienes el servidor inicializado ?
el index.jade trata de generarlo de forma manual, y si te lo genera es por que algo esta mal en el gulpfile.js
pokaxperia
@pokaxperia
si, ya vi cual era el error, gracias
Sergio Daniel Xalambrí
@sergiodxa
En Platzi habilitaron un canal de Slack para estudiantes:
https://soyplatzi.herokuapp.com/
Miguel Alejandro Viñan Hidalgo
@mvinan
Como nos conectamos. :).
Sergio Daniel Xalambrí
@sergiodxa
@mvinan entra a ese link, coloca tu email y te va a llegar por mail una invitación para poder entrar
Miguel Alejandro Viñan Hidalgo
@mvinan
Solo mi mail
Ok gracias voy a hacerlo.
pokaxperia
@pokaxperia
alguien sabe por que sale este error
events.js:72
throw er; // Unhandled 'error' event
^
Error: EMFILE, open '/Users/pokaxperia/Documents/proyectos/react_ecs6_0/node_modules/react/package.json'
ulimit -n 10000
el cual, buscando, según se resuelve con
alguien puede explicarme?
Sergio Daniel Xalambrí
@sergiodxa
This message was deleted
El problema es debido a un límite que tiene el SO a la cantidad de archivos que podés estar usando al mismo tiempo
José Aguirre
@josejaguirre
Muy buena iniciativa la del canal eh
pokaxperia
@pokaxperia
alguien de españa por aqui (Madrid) ???
José Aguirre
@josejaguirre
México
pokaxperia
@pokaxperia
alguien de aquí ha manejado proyectos con react?
Joel A. Jaime B.
@jblandino
Yoooo
Luis Enrique G Mtz
@elektroacustica
y que tal React?
Yesid Ghisays
@yeso126
Hola gente, quienes aqui trabajan con IonicFramework ?
Joel A. Jaime B.
@jblandino
Yo
Yesid Ghisays
@yeso126
Que tal es en su opinion? empece ayer empece a usarlo y hasta ahora me ha gustado, no tienes algun tutorial para principiantes ?
Luis Enrique G Mtz
@elektroacustica