Jump to content

Buscar en la comunidad

Mostrando resultados para las etiquetas 'curso'.

  • Buscar por etiquetas

    Escribe las etiquetas separadas por comas.
  • Buscar por autor

Tipo de contenido


Foros

  • Metin2 Zone
    • Comunidad
    • Presentaciones y despedidas
  • Servidores Privados
    • Presentaciones de Servidores
    • Presentación de Proyectos
  • General
    • Discusiones generales
    • Socios y Colaboraciones
    • Servicios y compraventa
    • Ayudas y preguntas
    • Opiniones y consejos
    • Offtopic
  • Técnica
    • Programación
    • Edición de servidores Metin2
    • Desarrollo Web
    • Seguridad
    • Sistemas Operativos
    • Informática
  • Arte
    • Diseño y sección gráfica
    • Galería de imágenes y vídeos
    • Modelado 3D
    • Mapping
  • Descargas
    • Servidores y Clientes
    • Modelos 3D
    • Imágenes Metin2
    • Mapas
    • Traducciones
  • Archivo
    • Servidores Offline
    • Temas Links Caidos

Encontrar resultados en...

Encontrar resultados que...


Fecha creación

  • Inicio

    Fin


Última actualización

  • Inicio

    Fin


Filtrar por número de...

Ingreso

  • Inicio

    Fin


Grupo


Email


Sitio web


Jabber


Skype


Discord


Localización


Intereses

Encontrado 5 resultados

  1. Bueno como este tema lo pase muy por alto en las clases lo voy a añadir como un extra para los que no llegan a entender lo que significa server side rendering conocido como SSR y que es client side rendering conocido como CSR y sus diferencias entre si. Bueno para no hacerlo muy largo paso a explicarles.... ¿Que es Server Side Rendering? Este es conocido como SSR o renderizado en la parte del servidor, y se puede decir que te da la posibilidad de poder renderizar el HTML de los componentes de tu web application en forma de cadena de texto desde la parte del servidor, en vez de utilizar el lado del cliente. Estas cadenas son las respuestas enviadas a las peticiones de la web application que estamos desarrollando. Es decir, que en ves de manipular del DOM con funciones sobre el navegador, delegamos esta tarea a un paso anterior que seria en el lado del servidor. Esta es la alternativa mas usada hoy en día para poder brindar una falsa idea de una web "rápida" y por que digo falsa idea? por que en realidad lo que hace SSR es devolver en la primer peticion del index.php o index.html un index con contenido ya procesado en el lado del servidor, como un primer esqueleto, y luego ir completándolo.... Es muy utilizado para mentener a los usuarios impacientes en nuestra web application mostrando un poco de contenido piensan que la web cargo entera, pero en realidad aun sigue en proceso desde el lado del servidor. ¿Que es Client Side Rendering? Bueno todo lo contrario, este trabaja desde el lado del cliente y los componentes se renderizan modificando el DOM sobre el navegador atravez de funciones, lo que esto provoca que sea mas lenta la carga del sitio, ya que en la primer petición del index.html a nuestra web application esta debe renderizar el DOM ENTERO, provocando que tarde unos considerables segundos mas que utilizando el método SSR. Y por si no quedo claro miren esta imagen que me las robe de un foro, si, esta vez no las hice yo por que es un tema que quiero explicar rápido y conciso no me voy a demorar preparándolo como cuando preparo las clases que si son 100% echas por mi de principio a fin: Esto es una web application renderizada desde el cliente: Y esto renderizada desde el servidor: Y seguro digas, pero vos estas proponiendo React como tecnología avanzada y este utiliza CSR ya que es front-end y no back-end. Claro que si, pero que pasa REACT JS es especial y lo dije desde el principio, desde que comencé a hablarles sobre esta librería, React Js tiene SU PROPIO DOM VIRTUAL, lo conocido hoy en dia como Virtual DOM, por lo tanto este en los llamados y peticiones no renderizara el DOM ENTERO cada vez que se le realiza una petición, este los mantiene en constante comparacion entre el virtual y el original, en cuanto entra una petición es procesada en el virtual y este solo renderiza la parte modificada, actúa como SSR en la el front-end e incluso se puede decir que es mucho mas rapido y efectivo. Es decir que React utiliza SSR en front-end, y incluso logra agilizarlo mas de lo que ya lo conocíamos. Pueden ver mas sobre Virtual DOM en la clase 2 que hablo sobre el. Saludos y hasta la próxima.
  2. Handling Events No voy a explicar teoria sobre Handling Events, supongo que todos sabemos lo que es, paso a mostrarles como se realiza en React y nada mas. Conocemos que un Handling Event en Javascript se realiza de la siguiente forma: <button onclick="saludar()"> Click me </button> Pero en React Js se realiza de la siguiente forma: <button onClick={saludar()}> Click me </button> Y dentro de un componente que vimos como crearlos la clase pasada, nos quedaria de la siguiente forma: class BotonSaludar extends Component { saludar = () => { alert('Hello World!'); } render() { return ( <button onClick={this.saludar}> Click me </button> ); } } Entonces esto seria un solo componente, un solo archivo js, como vimos en el ejercicio anterior, y exportandolo, ya podemos usar este boton en cualquier lugar de nuestra web application llamandolo con: <BotonSaludar/> VIRTUAL DOM Virtual DOM es una abstraccion del DOM, y es UNICO de React Js, es una copia fiel del DOM normal que todos conocemos. DOM Es una representación estructurada del documento HTML y define de qué manera los programas pueden acceder al fin de modificar, tanto su estructura, estilo y contenido. Pero... ¿que sucede si se reconstruye el DOM cada vez que hay cambios? Si, se volveria loco nuestro señor pintor jaja, y ESTO es lo que viene pasando EN TODOS los lenguajes de programacion de vistas, como html5. Cada vez que se realiza un cambio en la vista, se recontruye TODO el DOM, y asi millones de veces por cada client. Y aca viene una de las cosas mas novedosas de React Js. React implementa Virtual DOM. React crea una copia ligera del DOM y en cada cambio lo compara con el DOM Real. En lugar de renderizar el DOM completo en cada cambio, los aplica exclusivamente en las partes que varían. Métodos de arrays forEach Ejecuta la función callback una vez por cada elemento presente en el array en orden ascendente. unArray.forEach(function(value, index){ console.log("En el indice: " + index + " está el valor: " + value); }); find Devuelve el valor del primer elemento del array que cumple la función de prueba proporcionada. En caso de no encontrarla, devuelve undefined. var inventario = [ {nombre: 'manzanas', cantidad: 2}, {nombre: 'bananas', cantidad: 0}, {nombre: 'cerezas', cantidad: 5} ]; inventario.find(function(fruta){ return fruta.nombre == 'cerezas' }); Nos devuelve: { nombre: 'cerezas', cantidad: 5 } map map llama a la función callback provista una vez por elemento de un array, en orden, y construye un nuevo array con los resultados. var results = [10,8,9,31].map(function(value){ return value % 2; }); Devuelve: [0,0,1,1] ¿Y si quisiera los resultados por separado? var results = [10,8,9,31].map(function(value){ return value % 2; }); first = results[0]; second = results[1]; third = results[2]; En este caso lo que haremos sera destructurarlo: var results = [10,8,9,31].map(function(value){ return value % 2; }); [first, second, third] = results; var results = [10,8,9,31].map(function(value){ return value % 2; }); [first, second, ...rest] = results; Y el destructurado tambien nos funciona con objetos: var o = {p: 42, q: true}; var {p, q} = o; filter filter llama a la función dada callback para cada elemento del array , y construye un nuevo array con todos los valores para los cuales callback retorna un valor verdadero. [10,8,9,31].filter(function(value){ return value%2==0; }); Devuelve: [10,8] reduce El método reduce() aplica una función a un acumulador y a cada valor de un array (de izquierda a derecha) para reducirlo a un único valor. [3,4,10].reduce(function(accumulator,currentValue){ return accumulator + currentValue; },[initialValue]); Devuelve: 17 Hora de la practica var productos = [ {nombre: 'mouse', categoria: 'computadora', cantidad: 2}, {nombre: 'teclado', categoria: 'computadora', cantidad: 0}, {nombre: 'almohadon', categoria: 'deco', cantidad: 0}, {nombre: 'cartera', categoria: 'moda', cantidad: 0}, {nombre: 'iphone 8', categoria: 'celulares', cantidad: 5} ]; a. Imprimir los nombres de todos los productos por consola. b. Imprimir cantidad disponible de iphone 8. c. Aumentar 2 cantidades en todos los productos. d. Imprimir solo los productos que pertenecen a la categoría computadora. e. Imprimir stock total. Funciones Definición de una función Declaramos una función con un nombre para hacer referencia e invocar la función. function cuadrado(lado) { return lado*lado } cuadrado(5) Devuelve = 25 Expresión de una función Asignamos una función anónima a una variable. Podemos invocar la función utilizando la variable. var cuadrado = function(lado) { return lado*lado } cuadrado (5) Devuelve = 25 function declarations vs function expressions anterior(5); doble(5); var doble = function(num){ return num*2; }; function anterior(num){ return num-1; } anterior(5); //4 doble(5); //Error var doble = function(num){ return num*2; }; function anterior(num){ return num-1; } Scope El alcance de una variable determina su accesibilidad. function next(){ var a = 6; return a+1; } En este caso "a" es una variable LOCAL. var a = 6; function next(){ return a+1; } Y en este caso "a" es una variable GLOBAL. Closure function padre(){ var a = 1; function closure(){ console.log(a); } closure(); } Cuando al anidar funciones, una función crea una variable local y una función interna, ésta función interna es un closure y solo está disponible dentro de la función padre. A diferencia de la función padre, el closure no tiene variables locales y usa las declaradas dentro de padre(). Ahora para ver si entendimos, en el siguiente codigo que imprimiria en la consola? function saludoConVar() { var saludo = "Hola"; if (true) { var saludo = “Chau”; console.log(saludo); } console.log(saludo); } Si efectivamente, en consola imprimiria las dos veces CHAU. Let ES6 Permite declarar variables limitando su alcance (scope) al bloque, declaración o expresión donde se está usando. function saludoConLet() { let saludo = "Hola"; if (true) { let saludo = "Chau"; console.log(saludo); } console.log(saludo); } Y ahora si, nos imprimiria en el primer console.log un Chau y en el siguiente un Hola. Hora de la practica a. Definir una función que reciba un número X e imprima los primeros X números de la sucesión Fibonacci. Los números de Fibonacci deben ser generados por la función. 0,1,1,2,3,5,8,13,21,34,55,... b. ¿Qué creen que imprimirá por consola el siguiente código? ¡No ejecutar el código! var frutas = ["Cereza", "Manzana", "Melón", "Frutilla"]; for(var i = 0; i <= frutas.length; i++){ setTimeout( function(){ console.log(frutas[i]); }, 2000); }. c. Ejecutar el código anterior. ¿Qué imprime por consola y por qué? d. ¿Cómo harían para que imprima por consola cada elemento del array cada 2 segundos? Podemos tratar a las funciones como variables. Esto nos da la posibilidad de: Almacenarla en variables: var doble = function(a){ return a*2; } var doble = function(a){ return a*2; } Retornarla: function vuelto(monto){ precio = 100; function calcVuelto(){ return precio-monto; } return calcVuelto(); } Y pasarla como argumento: function a(){ console.log("a"); } function b(a){ console.log("b"); a(); } Y si te pregunto ¿Que hace esto? ¿Que responderias? function username(unaFuncion){ var name = prompt("Ingrese su nombre"); unaFuncion(name); } function welcome(name){ alert("Bienvenido " + name + "!"); } username(welcome); PARA SEGUIR LA CLASE UNITE A SLACK, AHI RESPONDES ESTAS PREGUNTAS Y YO TE IRE RESPONDIENDO PARA QUE SEPAS QEU VAS ENTENDIENDO. Callback Callback es una función que se pasa por parámetro a otra función y en principio se ejecuta una vez que se haya terminado de ejecutar la función anterior. Cuando enviamos una función anónima a un evento, estamos utilizando Callbacks. Un Callback funciona como un Closure. ¿Y esto que hace? function funcionA(funcionB){ console.log("a"); setTimeout(function(){ funcionB() },1000); console.log("c"); } function funcionB(){ console.log("b"); } funcionA(funcionB); Asincronía en JS Asincronía en JS ◆ Callbacks (ES5) ◆ Promises (ES6) ◆ Async/await (ES7) Callbacks Callback -> Procesos asincrónicos function primero(callback){ setTimeout(function(){ callback(); },1000); } function segundo(){ console.log("Ejecutando callback"); } console.log(‘antes’); primero(segundo); console.log(‘despues’); //antes //despues //Ejecutando callback function primero(callback){ setTimeout(function(){ console.log("Primero"); callback(); },1000); } function segundo(callback){ setTimeout(function(){ console.log("Segundo"); callback(); },1000); } function tercero(){ console.log("Tercero"); } Esto seria: primero(segundo(tercero)); Callback hell primero(function(){ segundo(function(){ tercero(function(){ cuarto(function(){ ... }); }); }); }); Hora de la practica a. Consultar datos de un pokemón haciendo llamado ajax a pokeAPI (Por ejemplo: Pidgey) e imprimir por consola su nombre y peso. https://pokeapi.co/api/v2/pokemon/{pokemon} b. A partir de la consulta anterior, imprimir por consola el nombre y peso de su próxima evolución (Es decir, Pidgeotto). c. ¿Cómo haríamos si queremos también imprimir los datos de su próxima evolución? (En nuestro ejemplo, Pidgeot). ¿Qué comportamiento se repite? Promises Promises Una Promesa es un objeto que representa la terminación o el fracaso eventual de una operación asíncrona. Representa un valor que puede estar disponible ahora, en el futuro o nunca. const promise = f(); promise.then(exitoCallback).catch(errorCallback); function f(){ return (new Promise((resolve, reject) => { var ok = Math.round(Math.random()); if(ok){ var foo = "Todo ok"; resolve(foo); } else { reject(new Error("Ocurrio un error")); } }) )} const promise = f(); promise.then(foo => console.log(foo)).catch(error => console.log(error)); En esta promise que acabamos de ver si la promise se ejecuta bien nos devolvera "Todo ok" y si hay un error durante la ejecucion de la promise nos devolvera el Error. const promise = f(); promise .then(function(response1){ //código }) .then(function(response2){ //código }) .then(function(response3){ //código }) .then(function(responseN){ //código }) .catch(errorCallback); Const Puede recibir un valor en el momento de la declaración. Luego no puede ser modificada. const pi = 3.14; pi = 3.141592635; //Error!! COMO DIJE, NO SE PUEDE MODIFICAR PARA ESO SE USAN VARAIBLES NO CONSTANTES. Y ahora practiquemos con promises... asi que... Hora de la practica a. Modificar el ejercicio anterior para manejar el código asíncrono con promesas. b. Instalar la librería Axios y utilizarlo para peticiones HTTP del ejercicio anterior. Y bueno para ir terminando la clase de hoy y no hacerlo mas extenso veremos axios y damos por finalizada esta clase. AXIOS AXIOS AXIOS es una librería de Javascript para hacer pedidos asincrónicos HTTP (AJAX) a través de promesas npm install axios import Axios from 'axios'; Ya voy asumiendo donde van cada comando, y cada cosa, por eso ya no lo nombre, si siguen atentamente las clases y repasan o realizan las practicas, no hara falta explciarles que el import va en el componente que crearon y que necesitan que usea axios o lo que sea. AXIOS - GET Axios.get(url) .then(callbackSuccess) .catch(callbackFail); Por ejemplo, usaremos la api de pokemon con la que estuvimos practicando: Axios.get('https://pokeapi.co/api/v2/pokemon') .then((response)=>console.log(response)) .catch((error)=>console.log(error)); AXIOS - POST Axios.post(url, data) .then(callbackSuccess) .catch(callbackFail); Por ejemplo asi se realiza un post dentro de nuestra api: Axios.post('/user', {name:'Pepe', age:'18'}) .then((response)=>console.log(response)) .catch((error)=>console.log(error)); Y con esto terminamos la clase de hoy, fue mucho mas rapida y consisa que la anterior, y cada vez nos vamos mentiendo mas a fondo de lo que trata esta hermosa libreria. Veremos como desarrollare la proxima clase no puedo decirles que veremos la proxima, por que la verdad aun no la pense.... en la semana les dire como proseguiremos, les deseo mucha suerte, buen desarrollo y los espero es Slack para despejar dudas y compartir codigo entre todos!
  3. Bueno como les prometí hoy comenzamos con las clases de esta hermosa y espectacular librería conocida como React Js, y sin mas vueltas vamos a ello.... Seguramente lo primero que todos se preguntan es... ¿Que es React? Bueno como lo vine repitiendo ya un millón de veces jaja, React.js es una librería, efectivamente como su nombre lo dice... de Javascript y open source desarrollada por Facebook, y focalizada en el desarrollo de interfaces de usuario. En resumidas palabras es la V del MVC. Server side rendering Client side rendering Ecosistema de React Al ser solo una librería deja de lado muchas otras soluciones que nos aportan los tan queridos frameworks, pero no se asusten zoneros, por que sin embargo existe todo un ecosistema de herramientas, aplicaciones y librerías que al final equiparan React a lo que seria un framework. NPM NPM (Node Package Manager) es un gestor de paquetes de Javascript de Node.js. Por medio de esta herramienta podemos crear, compartir y reutilizar módulos en nuestras aplicaciones de forma sencilla. Acá es cuando ya empezamos a hablar de otras cosas que no son React como dije en la introducción, voy a ir explicando todo lo mejor posible para poder usar React y equiparlo como dios manda. Si nunca usaste NPM, te explico.... dependiendo de tu entorno de desarrollo (windows o linux) tenes varias formas de instalarlo. Para windows basta con entrar al sitio oficial de node (Ir al Sitio) descargar la versión estable y instalar. Y para linux (ubuntu) es ingresando las siguiente lineas de comando en orden: sudo apt-get update sudo apt-get install nodejs sudo apt-get install npm Bueno continuando con React, facebook nos ofrece un paquete para crear una aplicación rápida en React sin tener que preocuparnos de las configuraciones de Webpack y todas las que involucran para hacerlo funcionar, eu no me ataquen, si, también explicare Webpack y sus derivantes pero mas adelante, vamos por partes como dijo jack. Para esto deben tirar en consola las siguientes lineas de comando: npm install -g create-react-app create-react-app mi-proyecto-zone cd mi-proyecto-zone npm start Bueno ahora les explicare que realiza cada linea aunque es fácil de deducir, pero no quiero dejar ningún tipo de dudas para los que son aficionados en desarrollo o nunca usaron line of code. En la primer linea estaremos instalando atraves de Node el paquete de facebook para crear aplicaciones rápidas de React, en la linea que le sigue utilizamos dicho paquete para crear un proyecto React con el nombre "mi-proyecto-zone", en la tercer linea ingresamos a la carpeta que nos genero el paquete de facebook y por ultimo iniciamos el proyecto. Importante: Debemos estar parados sobre nuestro proyecto ya que la ejecución de npm start busca el archivo package.json, un script con la clave start y ejecuta el comando especificado como su valor que nos permite correr nuestra aplicación. Hora de la practica Les voy a pedir como primer punto de practica de hoy que realicen lo siguiente: a) Instalar npm en su entorno de desarrollo b) Instalar el starter kit de faacebook para proyectos rapidos de React c) Crear un proyecto utilizando el starter kit d) Levantar el proyecto ¿Y que nos acabamos de descargar? create-react-app nos descarga un conjunto de paquetes para comenzar rapidamente con una aplicacion basada en React, y esta incluye: * Librerias de React * Ecosistema Babel + Webpack configurado * HMR * Y muchos módulos mas En node_modules están todos los paquetes de node.js instalados para el proyecto en React. En la carpeta public se encuentra el archivo index.html que es el archivo html principal que se va cargar cuando el usuario ingresa a la url de nuestra aplicación. En src están todos los archivos donde vamos a trabajar en nuestro proyecto en React. En package.json se especifican las dependencias y las versiones de los paquetes que depende el proyecto. Y muchos se estarán preguntando que es esto!! Pero si es un .js! Que clase de Javascript es esto? Señoras y señores, les presento lo nuevo de Javascript o conocido como ECMAScript 6. ES6 ECMAScript 6 es la nueva versión de Javascript lanzada en el 2015. ¿Que tiene de nueva ES6? * Arrow functions * Clases * let & const * import & export * Template String * Entre otras novedades mas..... Clases ES5 class Notebook { constructor(brand){ this.brand = brand; } getBrand(){ return this.brand; } setBrand(brand){ this.brand = brand; } } Se pasa a variable: var notebook = new Notebook("Dell", "Alienware"); notebook.getBrand(); notebook.setBrand("Apple"); En cambio con ES6: class Notebook { constructor(brand){ this._brand = brand; } get brand(){ return this._brand; } set brand(brand){ this._brand = brand; } } Se pasa a variable: var notebook = new Notebook("Dell"); notebook.brand; Notebook.brand = "Apple"; Es un poco mas simple, pero seguro dirán "ni que esto me salvara la vida de tanto codigo", tranquilos es solo el principio.... lo interesante se viene cuando nos metamos de lleno en los componentes de React. Import & Export import Componentes from './componente' Se utiliza para importar funciones u objetos que han sido exportadas desde un modulo externo. export componente; Es usada para exportar funciones, objetos o tipos de dato primitivos a partir de un archivo (o modulo). ¡También podemos exportar e importar clases! Arrow Functions Como su nombre lo indica, los arrow functions son funciones definidas usando una flecha => En ES5 var duplica = function(num) { return num * 2; } Y con nuestro tan querido ES6 var duplica = (num) => num * 2; Como se ve, es mucho mas fácil de codear con las arrow functions incluso mas rápido. Hora de la practica Les voy a pedir como segundo punto de practica de hoy que realicen lo siguiente: a) Copiate el siguiente objeto en un nuevo archivo "alumno.js" dentro de src: var alumno = { nombre:"Pepe", apellido:"Perez", curso:"React", aprobado:true } b) Importar el objeto del punto "a" en App.js. Modificar/Agregar el codigo para poder exportarlo y luego importarlo. c) Modificar en App.js para que imprima el nombre y apellido del alumno en lugar de "Welcome to React" e imprima que curso esta realizando en lugar de "To get started, edit and save to reload". d) Modificar el código en alumno.js para convertirlo en clase. Definir sus getters y setters. e) Crear una instancia de Alumno. Modificar el código en App.js para mostrar los datos del mismo. Utilizar los getters definidos en el punto anterior. f) Definir una función dentro de App.js para que imprima el estado de aprobacion del alumno.. Debe imprimir "Aprobado" si lo esta, caso contrario "No Aprobado". g) Modificar la función anterior para expresarlo como arrow function. Y ahora si llego lo esperado, por lo que vinieron a mi aporte, REACT jaja, tuve que explicarles todo lo anterior por que React Js trabaja mucho con todo esto y mi idea es orientar las clases desde gente sin conocimientos de nada hasta gente con conocimientos de desarrollo. Bueno sin mas vueltas... ahí vamos.... Componente Nos permiten desglosar el desarrollo de aplicaciones web en pequeños contenedores reusables, espera, dijiste ¿Reusables? SI! Esta es la primer novedad de React Js, que podemos desarrollar componentes a lo loco, y estos reutilizarlos en cualquier parte de nuestra aplicación sin tener que codear prácticamente nada! Hasta ahora, la única forma que conocíamos de crear elementos html desde la programación era mediante Js de la siguiente forma: var saludo = document.createElement('h1'); saludo.innerText = 'Hello world!'; saludo.className = 'text-primary'; document.body.append(saludo); Pero en React es de la siguiente forma: React.createElement(type, [props], [...children]); Un ejemplito: HTML Deseado: <div class="text-primary"> Hello World! </div> Creado en React: React.createElement( "div", {className: "text-primary"}, "Hello World!" ); Espera, entonces si quiero realizar lo de a continuación como seria? <ul id="nav"> <li><a href="#">Home</a></li> <li><a href="#">About</a></li> <li><a href="#">Contact Us</a></li> </ul> Si efectivamente, sera de la siguiente forma: var nav = React.createElement( "ul", { id: "nav" }, React.createElement( "li", null, React.createElement( "a", { href: "#" }, "Home" ) ), React.createElement( "li", null, React.createElement( "a", { href: "#" }, "About" ) ), React.createElement( "li", null, React.createElement( "a", { href: "#" }, "Contact Us" ) ) ); Euuu, nos engañaste... donde esta lo fácil y reutilizable, tardo una eternidad en hacer un navegador!!! No mis buenos amigos, no los engañe lo que acabamos de ver era React en su estado netamente PURO, nadie lo codea de esa forma, solo era para ver su hermosa sintaxis y asustarlos jaja, la forma de programar en React es por medio del JSX. JSX JSX es una extensión de ECMAScript. Es un pseudolengauje que facilita el desarrollo de aplicaciones para crear elementos en el DOM gracias a su sintaxis muy parecida al XML. Por lo que el ejemplo anterior seria: var nav = <ul id="nav"> <li><a href="#">Home</a></li> <li><a href="#">About</a></li> <li><a href="#">Contact Us</a></li> </ul> Jeje, disculpen por los memes, es para darle un poco de dinámica a las clases.... bueno continuemos ahora vamos a meternos de lleno a analizar la estructura de un componente.... en React los componentes en el 98% de los casos por no decir 100% son terminados en extension .js vamos a analizar el componente App.js que es el componente principal (Maestro o Padre) de nuestra web application. Bueno para comenzar a crear un componente vamos a analizar el que ya viene creado por defecto. Lo primero que se hace es importar React, Component desde react (Seria la primer linea), luego se creamos un componente React con las clases de ES6 que extienden de la clase Component anteriormente importada. Luego vemos que el componente tiene un método render que es el que se encarga de renderizar en el navegador el HTML correspondiente al componente. Y por ultimo dentro de nuestro método render retornamos en formado JSX lo que queremos dibujar, facilitando el desarrollo y creación de elementos HTML. IMPORTANTE: El método render solo retorna UN elemento. Por lo tanto, si tenemos mas de un elemento debemos meterlos en un contenedor padre, por lo general "div". Después tenemos detalles en la sintaxis, como class -> className o for -> htmlFor mas adelante les dare un listado completo de todas las propiedades que cambian de nombre o sintaxis. ¿Pero esto seria JavaScript valido? SI, y la forma en que esto se compila de forma valida es gracias al señor BABEL Webpack Es un empaquetador de módulos, te permite generar un archivo único con todos aquellos módulos que se necesitan. Bueno ahora vamos a suponer que creamos un segundo componente: Y ahora si lo queremos incorporar en App.js? Si, así de simple, con tan solo poner <Segundo/> ya nos dibujo el html que antes habíamos programado. Y para terminar por hoy vamos a los ultimas practicas. Hora de la practica Realizaremos dos puntos para completar la clase de hoy: 1) Componentes (sin JSX) a) Crear un nuevo componente "componente.js" en src. Crear un elemento que contenga un titulo "Mi primer componente" utilizando React.createElement y renderizarlo en App.js. (NO SE ENGAÑEN Y HAGANLO EN REACT PURO, ES PARA PRACTICAR) b) Modificar el componente anterior para que ademas de un titulo también contenga un párrafo de tecto "Practicando crear componentes sin JSX" y renderizarlo. c) Crear otro nuevo componente "frutas.js" utilizando React.createElement que contenga el titulo "Lista de frutas" y una lista con los siguientnes items: "Manzana", "Pera", "Banana". 2) Componentes (JSX) a) Modificar el componente "Frutas" creado en la practica anterior para que contenga el titulo y la lista del ejercicio anterior pero esta vez utilizando JSX. Renderizarlo. b) Exportar el componente creado e importarlo en App.js y renderizarlo. Y eso fue todo por hoy, por esta clase, espero que les haya gustado y que quieran seguir metiendole a esta linda libreria, esto es solo el principio React esconde muchas ventajas y muchas secretos, que juntos vamos a desenmascarar. En la clase siguiente veremos Handling Events, Virtual DOM (uno de los secretos de react), callback, promises todo de React. Para los usuarios desarrolladores en windows les recomiendo las siguientes cosas: - Atom o Visual Code (el de mis fotos, el que uso yo) (https://code.visualstudio.com/) - Cmder (http://cmder.net/) Para los que tienen linux solo descarguen el motor de texto (Los que no utilizan ninguno similar, usuarios nuevos en el tema): - Atom Cmder es un atractivo linea de comandos que remplaza el CMD clásico, este es mucho mejor y menos engorroso para desarrolladores de Node, webpack, etc que trabajan mucho por linea de comando, se los recomiendo con todo mi ser. Saludos y muchas gracias por participar.
  4. Bienvenidos nuevamente a uno de mis aportes a la comunidad, hoy quiero dar inicio a un curso es React Js y todas las librerías que lo acompañan para hacerlo aun mas interesante de lo que ya es de por si la librería React Js. La verdad no se de cuantas clases (temas) contara, intentare hacerla la mas dinámica y interesante posible. Para los que no saben React Js, es una librería creada por facebook para la programación de web applications, y su fuerte esta 100% en lo que es client-side. Les estaré dando clases de: 1) React Js 2) React Router 3) Flux 4) Redux Y en el camino seguramente explique otras cosas mas que se complementan a estos, pero no los voy a especificar, veremos como se va dando clase a clase. React es relativamente nuevo, no muchos lo programan, algunos seguramente ni lo conocen o nunca lo escucharon..... lo que si, se los puedo asegurar..... saber react es lo que se demanda en el mercado actualmente, suma muchos puntos en el ámbito empresarial. Y para sus proyectos personales, nada mejor que desarrollarlos con esta librería que alivia mucho el re-tipeo de códigos, la carga optima de la web, etc. Yo me dedico a esto hace 6 años de forma profesional, tengo títulos que avalan mis conocimientos, por lo que pueden estar tranquilos que no les estaré vendiendo verduras. Las clases las voy a estar dividiendo en una parte teórica, y una parte practica. Y seguramente les proponga que se tomen el tiempo de desarrollar una web application funcional a medida que avancemos en las clases, para afianzar los conocimientos y luego entre todos compartirnos los repositorios para ver que logro cada uno, lo ideal es mantener lo que se pide, pero si alguien se anima a mas es libre de explayarse. Para poder llevar a cabo las clases les voy a pedir que se creen una cuenta en GitLab, para luego empezar a crear repositorios que usaremos durante las clases. También los que gustan pueden dejar sus correos electrónicos y les enviare una invitación al entorno de desarrollo que arme en Slack para las clases. y sin mas vueltas, los espero en la primer clase que sera hoy. Saludos.
  5. 1. PHP, qué es y como funciona. 2. PHP esencial 2.1 Distinguir entre PHP y HTML 2.1.1 Escapando HTML 2.2 Separando instrucciones 3. PHP básico 3.1 Enviar texto al cliente 3.2 Comentarios 3.3 Variables 3.3.1 Constantes 3.4 Operaciones aritméticas 3.5 Lógica 3.5.1 Operadores lógicos 3.5.2 Expresiones lógicas 3.6 Estructuras de control 3.6.1 If, elseif, else 3.6.2 Switch 3.7 Bucles 3.7.1 While 3.7.2 For 3.7.3 Do-while 3.8 Strings (texto) cómo trabajar con él 4. Comienza lo bonito 4.1 Funciones, como usarlas 4.1.1 Argumentos 4.1.2 Valores de retorno 4.2 Funciones, como crearlas 4.2.1 Argumentos 4.2.2 Valor de retorno 4.3 Ámbito de variables y variables estáticas en funciones 4.4 Arrays (vector o lista) 5. Interaccion con el cliente 5.1 Recibir datos del cliente 5.1.1 Formularios Proximamente: 5.1.2 Cookies 5.2 Almacenar datos 5.2.1 Sesiones 5.2.2 Base de datos (u otro formato) 6. PHP Avanzado 6.1 Operador ternario 6.2 Arrays multidimensionales 6.3 Variables variables 6.4 Excepciones 7. Programación orientada a objetos 7.1 Clases y objetos, metodos y propiedades, estático o no etc. 7.2 Herencia de clases 7.3 Clase abstracta (esa clase que solo la quieres para que hereden de ella) 7.4 Interfaces (estas son quienes te dicen lo que debes hacer) 26 de mayo: comienzo interaccion con el cliente
×
×
  • Crear nuevo...