Bird
Raised Fist0
NextJSframework~20 mins

Image component and optimization in NextJS - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Next.js Image Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
2:00remaining
What is the output of this Next.js Image component?

Consider this Next.js Image component usage:

import Image from 'next/image';

export default function Avatar() {
  return (
    <Image
      src="/avatar.png"
      alt="User Avatar"
      width={100}
      height={100}
      priority
    />
  );
}

What does the priority prop do here?

AIt forces the image to load immediately during page load for better performance.
BIt makes the image load lazily only when it enters the viewport.
CIt disables image optimization and serves the raw image file.
DIt automatically adds a blur placeholder before the image loads.
Attempts:
2 left
💡 Hint

Think about what helps important images load faster on the page.

📝 Syntax
intermediate
2:00remaining
Which option correctly uses the Next.js Image component with a remote URL?

You want to display an image from https://example.com/photo.jpg using Next.js Image component. Which code snippet is correct?

A<Image src="https://example.com/photo.jpg" alt="Photo" sizes="300x200" />
B<Image src="https://example.com/photo.jpg" alt="Photo" width="300" height="200" />
C<Image src="https://example.com/photo.jpg" alt="Photo" width={300} height={200} />
D<Image src="https://example.com/photo.jpg" alt="Photo" layout="fixed" />
Attempts:
2 left
💡 Hint

Remember the width and height props must be numbers, not strings.

🔧 Debug
advanced
2:00remaining
Why does this Next.js Image component throw an error?

Look at this code snippet:

import Image from 'next/image';

export default function Logo() {
  return (
    <Image
      src="/logo.svg"
      alt="Company Logo"
      width={null}
      height={50}
    />
  );
}

What error will this cause and why?

ATypeError because width cannot be null; it must be a number.
BSyntaxError because JSX tags are not closed properly.
CRuntime error because SVG images are not supported by Next.js Image.
DNo error; the image will render with width auto and height 50.
Attempts:
2 left
💡 Hint

Check the type requirements for width and height props.

❓ state_output
advanced
2:00remaining
What is the rendered output of this Next.js Image with layout='fill'?

Consider this component:

import Image from 'next/image';

export default function Background() {
  return (
    <div style={{ position: 'relative', width: '400px', height: '300px' }}>
      <Image
        src="/background.jpg"
        alt="Background"
        layout="fill"
        objectFit="cover"
      />
    </div>
  );
}

What will you see on the page?

AThe image does not render because layout='fill' requires explicit width and height.
BThe image displays at its original size inside the div, possibly overflowing.
CThe image is stretched to 400x300 but may distort aspect ratio.
DThe image fills the 400x300 div, cropping if needed, covering entire area.
Attempts:
2 left
💡 Hint

Think about how layout='fill' and objectFit='cover' work together.

🧠 Conceptual
expert
2:00remaining
Which statement about Next.js Image optimization is true?

Choose the correct statement about how Next.js optimizes images using the Image component.

ANext.js automatically converts all images to WebP format regardless of browser support.
BNext.js optimizes images by resizing, lazy loading, and serving modern formats based on browser support.
CNext.js serves optimized images only for local files, remote images are not optimized.
DNext.js requires manual configuration to enable any image optimization features.
Attempts:
2 left
💡 Hint

Think about what Next.js does automatically and what requires config.

Practice

(1/5)
1. What is the main benefit of using the Next.js Image component instead of a regular <img> tag?
easy
A. It disables image loading to save bandwidth.
B. It allows you to write images in plain text format.
C. It automatically optimizes images for faster loading and better display.
D. It converts images to video format for animation.

Solution

  1. Step 1: Understand the purpose of Next.js Image component

    The Next.js Image component is designed to improve image loading speed and quality automatically.
  2. Step 2: Compare with regular <img> tag

    Regular <img> tags do not optimize images or handle responsive loading by default.
  3. Final Answer:

    It automatically optimizes images for faster loading and better display. -> Option C
  4. Quick Check:

    Image optimization [OK]
Hint: Next.js Image optimizes images automatically [OK]
Common Mistakes:
  • Thinking it disables image loading
  • Believing it converts images to video
  • Confusing it with text formatting
2. Which of the following is the correct way to import and use the Next.js Image component in a React component?
easy
A. import Image from 'next/image';

<Image src='/pic.jpg' alt='Pic' width={300} height={200} />
B. import { Image } from 'react';

<Image src='/pic.jpg' alt='Pic' />
C. import Img from 'next/image';

<Img src='/pic.jpg' alt='Pic' width='300' height='200' />
D. import Image from 'next/image';

<Image source='/pic.jpg' alt='Pic' width={300} height={200} />

Solution

  1. Step 1: Check import statement

    The Next.js Image component is imported as default from 'next/image' using import Image from 'next/image';.
  2. Step 2: Verify usage syntax

    The component requires src, alt, width, and height props with correct casing and types.
  3. Final Answer:

    import Image from 'next/image'; <Image src='/pic.jpg' alt='Pic' width={300} height={200} /> -> Option A
  4. Quick Check:

    Correct import and props [OK]
Hint: Use default import from 'next/image' with width and height [OK]
Common Mistakes:
  • Using curly braces in import for Image
  • Using 'source' instead of 'src' prop
  • Passing width and height as strings instead of numbers
3. What will happen if you use the Next.js Image component without specifying width and height props?
medium
A. The image will load normally without any warnings.
B. Next.js will throw a build-time error requiring width and height.
C. The image will be automatically sized to full screen.
D. The image will display but Next.js will warn about missing dimensions.

Solution

  1. Step 1: Understand required props for Image

    Next.js Image component requires width and height for proper optimization and layout stability.
  2. Step 2: Behavior without width and height

    If width and height are missing, the image still renders but Next.js shows a warning in the console about missing dimensions.
  3. Final Answer:

    The image will display but Next.js will warn about missing dimensions. -> Option D
  4. Quick Check:

    Missing width/height causes warning, not error [OK]
Hint: Always provide width and height to avoid warnings [OK]
Common Mistakes:
  • Assuming build-time error instead of warning
  • Thinking image won't display at all
  • Believing image auto-sizes to full screen
4. You wrote this code but the image does not appear and you see an error in the console:

import Image from 'next/image';

export default function Photo() {
  return <Image src='photo.png' alt='Photo' width={400} height={300} />;
}

What is the most likely cause?
medium
A. The src path is relative but missing a leading slash.
B. You forgot to import React in the file.
C. The alt attribute is missing.
D. Width and height must be strings, not numbers.

Solution

  1. Step 1: Check the src path format

    Next.js expects the src path to be absolute or start with a slash for public folder images.
  2. Step 2: Identify the error cause

    Using 'photo.png' without a leading slash means Next.js cannot find the image, causing it not to appear.
  3. Final Answer:

    The src path is relative but missing a leading slash. -> Option A
  4. Quick Check:

    Image src path must start with '/' [OK]
Hint: Use leading slash for public folder images in src [OK]
Common Mistakes:
  • Thinking React import is required in Next.js 13+
  • Assuming alt attribute is mandatory to display image
  • Passing width/height as strings instead of numbers
5. You want to show a large hero image that loads quickly on page load and uses a blurred placeholder while loading. Which Next.js Image props should you use together to achieve this?
hard
A. lazy and blurDataURL
B. priority and placeholder='blur'
C. loading='eager' and placeholder='empty'
D. priority and loading='lazy'

Solution

  1. Step 1: Identify props for fast loading

    The priority prop tells Next.js to load the image eagerly for faster display on page load.
  2. Step 2: Identify props for blurred placeholder

    The placeholder='blur' prop shows a blurred version of the image while the full image loads.
  3. Final Answer:

    priority and placeholder='blur' -> Option B
  4. Quick Check:

    Fast load + blur placeholder [OK]
Hint: Use priority and placeholder='blur' for hero images [OK]
Common Mistakes:
  • Using lazy loading for hero images slows load
  • Confusing blurDataURL with placeholder prop
  • Setting placeholder='empty' disables blur effect
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard