React Features Flashcards
Overview of React
- React: A JavaScript library created by Meta, primarily used for building user interfaces for applications like Facebook and Instagram.
- Popularity: Most widely used JavaScript framework known for its vast ecosystem and adoption by developers of all levels.
Key Features of React
Declarative Programming
- Definition: Developers declare how the UI should look based on the state changes. React handles the rendering.
- Advantages: Enhances speed of development, debugging ease, team collaboration, and app scalability.
Component-Based Architecture
- Overview: React applications are composed of multiple components.
- Types of Components:
- Core React components
- Custom app-specific components
- Reusable components from external libraries
- Benefits: Improves reusability, speeds up development, reduces UI defects. Components can be defined as JavaScript functions or ES6 classes, with a shift towards functional programming.
JSX (JavaScript Syntactic Extension)
- Purpose: Allows embedding HTML within JavaScript for easier UI development.
- Readability: Makes code more readable and maintainable, though it's optional.
- Example & Importance: Using JSX avoids complex, hard-to-maintain code.
Virtual DOM
- Definition: An in-memory representation of the actual DOM.
- Functionality: Optimizes UI updates by batching state changes before pushing them to the real DOM which enhances performance.
- Comparison: Other frameworks like Svelte and SolidJS provide excellent performance without a Virtual DOM.
Unidirectional Data Flow
- Process:
- Components subscribe to a state store for changes.
- State changes flow down from parent to child components without returning to the parent.
- Benefits: Simplifies debugging and maintains application state flow.
State Management
- Importance: Centralizes app state management, especially for larger applications.
- Tool: Redux is commonly used for sophisticated state management, enabling developers to manage data flow efficiently.
Automated Batching (React 18 feature)
- Overview: Introduces out-of-the-box batching for state updates and improves productivity.
- Benefits:
- Reduces multiple re-renders per state change.
- Ensures complete state updates before rendering.
Concurrent Rendering (React 18 feature)
- Definition: Allows React to prepare multiple UI versions simultaneously.
- Functionality: React can pause, abort, and reprioritize updates without disrupting user experience.
Suspense
- Feature: Suspense allows components to delay rendering until the required data is available.
- Function: Works with concurrent rendering and is essential for improved server-side rendering.
Hooks
- Definition: Functions allowing state management and lifecycle features in function components.
- Common Hooks:
useState, useEffect, useContext, useReducer, useMemo. React 18 has introduced additional hooks like useTransition and useDeferred.
- Overview: Built on React, allows development of Android, iOS, and web apps from a single code base.
- Features Used: Inherits core React features like components, hooks, and state management but utilizes native components instead of web components.
- Significance: UI performance is a critical outcome of using React; balances high-level development with backend performance.
- Evolution: React maintains performance while scaling complex applications, differing from other frameworks like Angular.
Corporate Backing and Future Developments
- Meta's Role: Heavily invested in React's ongoing development, with continuous feature enhancements.
- Upcoming Features: Focus on revamping core architecture via Fiber Architecture for improved rendering performance and state management.
Closing Thoughts
- Long-term Popularity: React remains a leader in frontend UI libraries due to continuous improvements from Meta and the developer community.
- Fiber Architecture: Anticipated updates promise enhanced rendering performance and developer efficiency.