1. When using a key for your list items, what’s the best general choice?

    <aside>

    using an ID coming from the data that points to the DB ID

    </aside>

  2. Imagine you have a specification for rendering the following list item:

    <li>Ice cream - 200 cal</li>, where the name and the number of calories are coming as dynamic data. List all the options that would correctly render the desired output.

    <aside>

  3. Let’s suppose you have a list of two items and a new item is added to the list. From the point of view of the React diffing algorithm, which of the following is the best place for the new element to be added?

    <aside>

    the end of the list - prevents previous items from having to be re-rendered

    </aside>

  4. What are controlled components?

    <aside>

    set of components whose internal state is controlled by React → state is delegated from the DOM to React local state

    </aside>

  5. Which of the following can you achieve with uncontrolled components?

    <aside>

  6. When creating an API for context consumers via useContext, what’s the argument you have to provide to the useContext call?

    <aside>

    the React state that defined the global state to be injected

    </aside>

  7. Imagine the component structure below, where all components ComponentA, ComponentB and ComponentC are simple presentational components that hold no props or state:

    const App = () => {
      return(
        <AppContext.Provider>
          <ComponentA />
        </AppContext.Provider>
      );
    };
    
    const ComponentA = React.memo(() => <ComponentB />);
    const ComponentB = () => <ComponentC />;
    const ComponentC = () => null;
    

    If the App component re-rendered for whatever reason, what would be the sequence of component re-renders that would take place?

    <aside>

    Then React tries to re-render the Provider’s child:

    Because ComponentA doesn’t re-render, it does not re-run and therefore it does not recreate/render its child tree:

    re-render sequence:

    App → AppContext.Provider → (ComponentA skipped) → (ComponentB skipped) → (ComponentC skipped)

    </aside>

  8. Even though props and state are inherently different, which of the following are areas where they overlap?

    <aside>

  9. When defining a JavaScript object as a piece of local React state that will be injected as context, what is the specific React hook that allows you to keep the same object reference in memory and prevent unnecessary re-renders if the object itself hasn’t changed any values?

    <aside>

    useMemo

    </aside>

  10. What are some possible examples of application features that are well suited to be defined as React context?

    <aside>