Which of the following caching strategies fetches the resource from the cache first, and if not present, then fetches it from the network?

  • Cache-First
  • Cache-Only
  • Network-First
  • Network-Only
The caching strategy that fetches the resource from the cache first and, if not present, then fetches it from the network is known as "Cache-First." In this strategy, the browser checks the cache for a response before making a network request. This approach helps improve website performance and load times by serving resources from the cache when available.

Which MobX utility can be used to create a custom reaction based on observable changes?

  • @observer
  • autorun
  • computed
  • when
The MobX utility "when" can be used to create a custom reaction based on observable changes. "when" allows you to create a reaction that runs only when a specified condition is met, which can be useful for handling specific cases or side effects based on changes in observables. This utility provides fine-grained control over when reactions are triggered, beyond the automatic reactions provided by "autorun" or "computed."

React Portals provide a way to render children into a DOM node that exists ________ the DOM hierarchy of the parent component.

  • "Within"
  • "Above"
  • "Below"
  • "Outside"
React Portals enable rendering children into a DOM node that exists outside the DOM hierarchy of the parent component. This is useful for scenarios like modals or tooltips, where you want to render content outside the typical component hierarchy. By choosing the correct option, "Outside," you ensure that content can be rendered independently of the parent's DOM structure, providing flexibility and control in your UI design.

In styled-components, to create global styles that apply across your entire application, you'd use the ______ component.

  • StyleProvider
  • GlobalStyles
  • CSSInjector
  • GlobalProvider
In styled-components, the component used to create global styles that apply across the entire application is called "GlobalStyles." This allows you to define styles that affect all components in your application, making it a powerful tool for maintaining a consistent look and feel. Other options are not typically used for this purpose in styled-components.

When implementing lazy loading with React.lazy() and Suspense, what is a potential concern regarding user experience?

  • Delayed rendering of components, leading to potential UI glitches and perceived performance issues.
  • Improved user experience due to faster page loads.
  • Increased initial load time due to fetching of all lazy-loaded components upfront.
  • Reduced code maintainability due to code splitting.
When using React.lazy() and Suspense for lazy loading, a potential concern is delayed rendering of components. As components are loaded only when needed, there might be a delay in rendering, leading to potential UI glitches and perceived performance issues. This can impact the user experience negatively. It's important to manage this concern when implementing lazy loading in React.

How do immutable data structures help in optimizing React component re-renders?

  • They allow components to change state directly.
  • They enforce state immutability.
  • They make components re-render more frequently.
  • They slow down the rendering process.
Immutable data structures enforce state immutability, meaning once a state is set, it cannot be changed directly. This helps optimize React component re-renders because React can efficiently detect if the state has changed by comparing references, reducing unnecessary re-renders. Changing state directly (Option 1) is against React best practices and can lead to rendering issues.

While splitting code with Webpack, you notice that two routes share a significant amount of code. How can you ensure that the shared code is not loaded multiple times for users?

  • Combine the code for both routes into a single file.
  • Implement server-side rendering to avoid code duplication.
  • Load the shared code using a CDN for faster delivery.
  • Use Webpack's code splitting with dynamic imports to create a shared bundle.
To prevent shared code from being loaded multiple times, you should use Webpack's code splitting with dynamic imports to create a shared bundle. This ensures that the shared code is loaded once and reused across routes as needed. Combining code into a single file doesn't achieve code separation and may result in larger bundles. Loading via CDN and server-side rendering address different issues.

How would you handle errors when making an API call using Axios?

  • By returning an empty response on error.
  • By setting the error status code to 404.
  • By throwing an exception on error.
  • By using the catch() method for error handling.
When making API calls using Axios, you can handle errors by using the catch() method to catch any errors that occur during the request. Axios will reject the promise if the request encounters an error, allowing you to handle the error condition and take appropriate actions. Throwing an exception or returning an empty response are not standard error-handling practices in Axios.

To connect a React component to the Redux store, one commonly uses the ________ function.

  • connectToRedux
  • mapStateToProps
  • mapStoreToComponent
  • reactStoreConnector
To connect a React component to the Redux store, one commonly uses the mapStateToProps function. This function maps the state from the Redux store to the props of the connected component, allowing it to access and display the state data. It's an essential part of integrating Redux with React for state management.

One common use case for using React Portals is rendering modals outside the main application DOM hierarchy.

  • Dropdowns
  • Modals
  • Popovers
  • Portals
React Portals are commonly used to render modals outside the main DOM hierarchy. This is especially useful for rendering elements like modals, which need to float above the main application content but may have complex structures.

Stateless components in React are also known as ________ components.

  • Pure Components
  • Functional Components
  • Dynamic Components
  • Class Components
Stateless components in React are also known as Functional Components. These components are defined as JavaScript functions and do not have internal state management. They receive props and render content based on those props. The other options do not accurately describe stateless components.

What is a potential downside or limitation of the current React diffing algorithm?

  • It can lead to excessive virtual DOM updates in some cases.
  • It cannot handle component state changes effectively.
  • It is not compatible with modern JavaScript features.
  • It relies too heavily on manual key assignments.
One potential downside of the current React diffing algorithm is that it can lead to excessive virtual DOM updates in some cases. If component updates are frequent or the tree structure is complex, React may perform more updates than necessary, affecting performance. Developers need to be mindful of optimizing their components and key assignments to mitigate this limitation and improve React app performance.