Qué es React.docx
Document Details
Full Transcript
**¿Qué es React?**\ Es una biblioteca de JavaScript para construir interfaces de usuario, especialmente para aplicaciones de una sola página (SPA). **¿Qué son los componentes en React?**\ Son bloques reutilizables que definen la UI. Pueden ser de clase o funcionales. **¿Qué es JSX?**\ Es una exten...
**¿Qué es React?**\ Es una biblioteca de JavaScript para construir interfaces de usuario, especialmente para aplicaciones de una sola página (SPA). **¿Qué son los componentes en React?**\ Son bloques reutilizables que definen la UI. Pueden ser de clase o funcionales. **¿Qué es JSX?**\ Es una extensión de la sintaxis de JavaScript que permite escribir código similar a HTML dentro de JavaScript. **¿Qué es el Virtual DOM y cómo funciona?**\ El Virtual DOM es una representación ligera del DOM real. React utiliza el Virtual DOM para minimizar las manipulaciones directas en el DOM real, mejorando el rendimiento. **¿Qué es el estado (state) en React?**\ El estado es un objeto que almacena datos dinámicos que determinan cómo se renderiza un componente. **¿Qué es un Hook en React?**\ Los Hooks permiten usar el estado y otras características de React en componentes funcionales. **¿Cuál es la diferencia entre useState y useEffect?**\ useState permite agregar estado a los componentes funcionales, mientras que useEffect maneja efectos secundarios, como llamadas a APIs o actualizaciones del DOM. **¿Qué es un \"key\" en una lista en React?**\ Una \"key\" es un identificador único que React usa para optimizar la renderización de listas. **¿Cómo maneja React el enrutamiento?**\ React utiliza bibliotecas como react-router-dom para manejar rutas y navegación dentro de la aplicación. **¿Qué es un \"higher-order component\" (HOC)?**\ Es una función que toma un componente y devuelve un nuevo componente con funcionalidad adicional. **Preguntas sobre C\# y.NET:** 11. **¿Qué es el Common Language Runtime (CLR)?**\ Es el entorno de ejecución de.NET que maneja la ejecución del código.NET, la gestión de memoria y más. 12. **¿Qué es el Garbage Collector en.NET?**\ Es un sistema de administración de memoria que automáticamente libera memoria no utilizada. 13. **¿Qué son los delegates en C\#?**\ Un delegate es un tipo que representa referencias a métodos con un tipo de parámetro y valor de retorno específico. 14. **¿Qué es un evento en C\#?**\ Un evento es un mecanismo de C\# para manejar el comportamiento asíncrono, basado en la suscripción a un delegate. 15. **¿Qué es LINQ en C\#?**\ LINQ (Language-Integrated Query) permite hacer consultas de datos directamente en C\# sobre colecciones, bases de datos, XML, etc. 16. **¿Qué es Entity Framework (EF)?**\ Es un ORM (Object Relational Mapper) que facilita trabajar con bases de datos relacionales mediante objetos de C\#. 17. **¿Cómo se implementa el manejo de excepciones en C\#?**\ Usando bloques try, catch, finally y lanzando excepciones con throw. 18. **¿Qué es un async y await en C\#?**\ Son palabras clave para escribir código asíncrono más fácilmente, permitiendo que las aplicaciones no se bloqueen mientras esperan tareas como llamadas a bases de datos o APIs. 19. **¿Cuál es la diferencia entre una clase abstracta y una interfaz en C\#?**\ Las clases abstractas pueden tener métodos implementados y abstractos, mientras que las interfaces solo definen la firma de los métodos. 20. **¿Qué es el polimorfismo en C\#?**\ El polimorfismo permite tratar a objetos de diferentes tipos derivados de una misma clase base como si fueran del tipo base, utilizando sobrecarga o herencia. **Preguntas sobre Arquitectura Fullstack:** 21. **¿Qué es REST?**\ REST (Representational State Transfer) es un estilo de arquitectura para construir APIs, que se basa en recursos accesibles mediante URLs. 22. **¿Qué son los verbos HTTP más comunes?**\ GET, POST, PUT, DELETE, PATCH. Cada uno tiene un propósito en la manipulación de recursos. 23. **¿Qué es un JWT (JSON Web Token)?**\ Es un estándar para representar de forma segura la información entre partes como un token que puede ser verificado y confiado. 24. **¿Qué es CORS?**\ CORS (Cross-Origin Resource Sharing) es un mecanismo que permite controlar qué recursos pueden ser accedidos por scripts desde otros dominios. 25. **¿Cómo se implementa la autenticación en una aplicación fullstack?**\ Se puede usar autenticación basada en tokens (JWT), autenticación con OAuth, o autenticación tradicional con sesiones y cookies. 26. **¿Qué es MVC?**\ Es un patrón de diseño que separa una aplicación en tres componentes: Modelo, Vista y Controlador. 27. **¿Cómo manejarías la validación de datos en el lado del cliente y del servidor?**\ Validación en el cliente con JavaScript/React para una mejor experiencia de usuario y en el servidor con C\# para garantizar la seguridad. 28. **¿Qué son los middlewares en una aplicación web?**\ Son componentes que se ejecutan en la tubería de solicitudes HTTP en el servidor y pueden manejar tareas como la autenticación, el registro, la manipulación de respuestas, etc. 29. **¿Qué es el API Gateway?**\ Es un punto de entrada único para varias APIs o microservicios, que puede manejar autenticación, enrutamiento, carga equilibrada y más. 30. **¿Cómo manejarías la concurrencia en un servidor web?**\ Usando programación asíncrona (async/await) para evitar el bloqueo de hilos, además de técnicas como \"pools de conexiones\" o \"queues\" para controlar el acceso a recursos compartidos. **Preguntas adicionales:** 31. **¿Qué es SOLID en el desarrollo de software?**\ Es un conjunto de cinco principios de diseño orientado a objetos que promueven la escalabilidad y mantenimiento del código. 32. **¿Qué es el principio de inversión de dependencias?**\ Las clases deben depender de abstracciones y no de implementaciones concretas. 33. **¿Qué es el rendimiento de una aplicación?**\ Se refiere a cuán rápido y eficiente es una aplicación al ejecutar tareas o responder a peticiones de los usuarios. 34. **¿Cómo optimizarías el rendimiento de una aplicación React?**\ Usando el memoization (React.memo), evitando renders innecesarios y usando el sistema de fragmentos y componentes ligeros. 35. **¿Qué es el useReducer en React?**\ Es un Hook que permite manejar lógica de estado más compleja que useState, utilizando una función reductora. 36. **¿Qué es HttpClient en C\#?**\ Es una clase utilizada para realizar solicitudes HTTP en aplicaciones.NET. 37. **¿Cómo implementarías una arquitectura de microservicios?**\ Descomponiendo una aplicación en servicios independientes que se comunican mediante APIs y manejando la escalabilidad, seguridad y consistencia entre ellos. 38. **¿Qué es una \"race condition\"?**\ Es un error que ocurre cuando múltiples hilos acceden y modifican un recurso compartido al mismo tiempo sin una sincronización adecuada. 39. **¿Qué es la inyección de dependencias?**\ Es un patrón en el que las dependencias de una clase se pasan externamente en lugar de ser instanciadas dentro de la clase misma. 40. **¿Qué es un patrón de diseño Singleton?**\ Es un patrón que garantiza que una clase solo tenga una única instancia y proporciona un punto de acceso global a ella. **Conceptos clave para estudiar:** 1. **Ciclo de vida de un componente en React** 2. **Promesas y manejo de errores en JavaScript** 3. **Principios de OOP en C\# (Encapsulamiento, Herencia, Polimorfismo)** 4. **EF Core: Migraciones y Consultas** 5. **HTTP Status Codes y su uso en APIs REST** 6. **Autenticación y Autorización en ASP.NET Core** 7. **Uso de Hooks avanzados en React (useContext, useRef)** 8. **Websockets y tiempo real** 9. **Optimización de consultas en bases de datos con LINQ** 10. **Programación asíncrona con TPL y async/await en C\#** **Preguntas sobre MongoDB:** 1. **¿Qué es MongoDB?**\ MongoDB es una base de datos NoSQL orientada a documentos, que almacena datos en formato BSON (JSON binario). 2. **¿Qué es una colección en MongoDB?**\ Una colección es un grupo de documentos dentro de una base de datos en MongoDB, equivalente a una tabla en bases de datos relacionales. 3. **¿Qué es un documento en MongoDB?**\ Un documento es una estructura de datos en formato JSON que almacena información en MongoDB. 4. **¿Cómo se realiza una consulta en MongoDB?**\ Usando métodos como find(), findOne(), y filtros basados en criterios JSON. 5. **¿Qué es un índice en MongoDB?**\ Un índice es una estructura que mejora la velocidad de las consultas en MongoDB, a costa de utilizar más espacio. 6. **¿Qué es la agregación en MongoDB?**\ Es un proceso de transformación y consulta de datos utilizando \"pipelines\" que permiten aplicar operaciones como filtros, agrupaciones y ordenaciones. 7. **¿Qué es Mongoose?**\ Mongoose es una librería de Node.js que facilita la interacción con MongoDB, permitiendo definir esquemas y validar datos. 8. **¿Cómo se define un esquema en Mongoose?**\ Usando el método mongoose.Schema para definir la estructura de los documentos de una colección. 9. **¿Cómo se implementa la validación en Mongoose?**\ Se pueden definir validaciones a nivel de esquema, como campos requeridos, tipos de datos, y valores únicos. 10. **¿Qué son las transacciones en MongoDB?**\ Permiten agrupar múltiples operaciones en una única unidad de trabajo que puede ser confirmada o revertida como un todo. **Preguntas sobre Express.js:** 11. **¿Qué es Express.js?**\ Express es un framework minimalista de Node.js que facilita la creación de aplicaciones web y APIs RESTful. 12. **¿Cómo se maneja el enrutamiento en Express.js?**\ Usando los métodos HTTP (get(), post(), put(), delete()) para definir rutas y asociarlas con controladores. 13. **¿Qué es un middleware en Express.js?**\ Es una función que tiene acceso al objeto de solicitud (req), respuesta (res) y a la siguiente función middleware en el ciclo de manejo de peticiones. 14. **¿Cómo manejas errores en Express.js?**\ Usando middlewares de manejo de errores, que capturan y responden a los errores generados en las rutas o controladores. 15. **¿Cómo implementarías la autenticación en Express.js?**\ Usando herramientas como JWT (JSON Web Tokens) o sesiones para gestionar la autenticación de usuarios. 16. **¿Qué es req y res en Express.js?**\ req es el objeto que representa la solicitud HTTP y res es el objeto que representa la respuesta HTTP. 17. **¿Cómo manejas rutas protegidas en Express.js?**\ Usando middlewares que verifican la autenticación o autorizaciones antes de permitir el acceso a ciertas rutas. 18. **¿Qué es CORS y cómo se habilita en Express.js?**\ CORS (Cross-Origin Resource Sharing) se habilita usando el middleware cors, que permite compartir recursos entre dominios distintos. 19. **¿Cómo implementarías paginación en una API con Express.js y MongoDB?**\ Utilizando los métodos de consulta de MongoDB como limit() y skip() para dividir los resultados en páginas. 20. **¿Cómo manejas archivos estáticos en Express.js?**\ Usando el middleware express.static() para servir archivos como imágenes, CSS o JS. **Preguntas sobre React:** 21. **¿Qué es React?**\ Es una biblioteca de JavaScript que permite construir interfaces de usuario interactivas, basada en el concepto de componentes. 22. **¿Qué es JSX en React?**\ JSX es una extensión de la sintaxis de JavaScript que permite escribir estructuras similares a HTML dentro de archivos JS. 23. **¿Cómo funcionan los Hooks en React?**\ Los Hooks permiten manejar el estado y otros ciclos de vida en componentes funcionales. Ejemplos incluyen useState, useEffect y useContext. 24. **¿Qué es el estado (state) en React?**\ El estado es un objeto que contiene datos dinámicos que afectan la renderización de un componente. 25. **¿Cómo implementas la navegación en React?**\ Usando bibliotecas como react-router-dom, que permiten definir rutas y componentes que se renderizan dependiendo de la URL. 26. **¿Qué es el Virtual DOM?**\ Es una representación ligera del DOM real que React utiliza para hacer cambios eficientes en la interfaz de usuario. 27. **¿Qué son los \"keys\" en listas de React?**\ Son identificadores únicos que ayudan a React a identificar qué elementos en una lista han cambiado, añadido o eliminado. 28. **¿Qué es un Hook personalizado en React?**\ Es una función de JavaScript que empieza con \"use\" y permite encapsular lógica repetida de Hooks nativos para reutilizarla en múltiples componentes. 29. **¿Qué es useMemo y cuándo lo usarías?**\ useMemo es un Hook que memoiza el resultado de una función costosa, y solo recalcula el valor cuando las dependencias cambian. 30. **¿Cómo optimizarías el rendimiento de una aplicación React?**\ Evitando renders innecesarios con React.memo, usando useMemo, useCallback, y gestionando adecuadamente el estado y las dependencias de los Hooks. **Preguntas sobre Node.js:** 31. **¿Qué es Node.js?**\ Node.js es un entorno de ejecución de JavaScript basado en el motor V8 de Chrome, que permite ejecutar código JS en el servidor. 32. **¿Qué es el event loop en Node.js?**\ Es un bucle que permite a Node.js realizar operaciones no bloqueantes, manejando múltiples solicitudes concurrentemente. 33. **¿Qué es npm?**\ Es el gestor de paquetes predeterminado de Node.js que se utiliza para instalar y gestionar dependencias en proyectos de JavaScript. 34. **¿Qué es una función asíncrona en Node.js?**\ Es una función que permite manejar operaciones no bloqueantes mediante la utilización de async/await o promesas. 35. **¿Qué es un buffer en Node.js?**\ Es un área de memoria que se utiliza para almacenar temporalmente datos binarios cuando se leen o escriben archivos, streams, etc. 36. **¿Cómo manejas archivos en Node.js?**\ Usando el módulo fs (File System) que permite leer, escribir, y manipular archivos en el sistema de archivos. 37. **¿Qué es require en Node.js?**\ Es una función que se utiliza para importar módulos en Node.js. 38. **¿Qué son streams en Node.js?**\ Los streams son objetos que permiten leer o escribir datos de manera eficiente y continua, ideales para manejar grandes cantidades de datos. 39. **¿Cómo manejas errores en Node.js?**\ Usando bloques try/catch con async/await o manejando promesas rechazadas con.catch(). 40. **¿Qué es un módulo en Node.js?**\ Un módulo es un archivo que encapsula código reutilizable en Node.js y puede ser exportado e importado entre archivos. **Preguntas sobre Arquitectura Fullstack (MERN):** 41. **¿Qué es una API RESTful?**\ Es una arquitectura que define un conjunto de operaciones HTTP (GET, POST, PUT, DELETE) para interactuar con recursos de una aplicación. 42. **¿Qué es GraphQL y cómo se compara con REST?**\ GraphQL es un lenguaje de consulta para APIs que permite a los clientes pedir exactamente los datos que necesitan, a diferencia de REST, donde el servidor define la estructura de la respuesta. 43. **¿Cómo gestionarías el estado global en una aplicación React?**\ Usando herramientas como Redux o Context API para manejar el estado en toda la aplicación. 44. **¿Qué es el principio de \"single source of truth\" en Redux?**\ Significa que el estado global de la aplicación debe almacenarse en un único objeto, gestionado por Redux. 45. **¿Cómo gestionarías la autenticación en una aplicación MERN?**\ Usando JWT para la autenticación basada en tokens, almacenando el token en el almacenamiento local o en cookies. 46. **¿Qué es el cross-site scripting (XSS) y cómo lo previenes?**\ XSS es un ataque que permite a un atacante inyectar scripts maliciosos en una aplicación web. Se puede prevenir mediante el escape de entrada de usuario y el uso de bibliotecas como Helmet en Express.js. 47. **¿Qué es CSRF y cómo lo previenes?**\ CSRF (Cross-Site Request Forgery) es un ataque donde un usuario autenticado es engañado para realizar acciones no deseadas. Se puede prevenir usando tokens CSRF. 48. **¿Cómo implementarías la subida de archivos en una aplicación MERN?**