...

/

Solution Review: Using the Nuxt Image Component

Solution Review: Using the Nuxt Image Component

Create a project using the Nuxt image component.

We'll cover the following...

Solution

The solution to the “Using The Nuxt Image Component” challenge is provided below:

<script setup>
const images = [
	{
		id: 1,
		title: "Vue.js logo",
		url: "https://upload.wikimedia.org/wikipedia/commons/thumb/9/95/Vue.js_Logo_2.svg/1024px-Vue.js_Logo_2.svg.png?20170919082558",
	},
	{
		id: 2,
		title: "Nuxt logo",
		url: "https://upload.wikimedia.org/wikipedia/commons/4/45/NuxtJS_Logo.png?20190302014036",
	},
	{
		id: 3,
		title: "JavaScript logo",
		url: "https://upload.wikimedia.org/wikipedia/commons/3/3b/Javascript_Logo.png?20210407134359",
	},
];

const selectedImage = ref(null);
function handleImageClicked(image) {
	if (selectedImage.value?.id == image.id) {
		selectedImage.value = null;
	} else {
		selectedImage.value = image;
	}
}
</script>
<template>
	<ul>
		<li v-for="image in images" :key="image.id">
			<nuxt-img
				:src="image.url"
				@click="handleImageClicked(image)"
				width="200px"
				quality="80"
				:style="{
					border:
						selectedImage?.id === image.id
							? '2px solid lightslategrey'
							: 'none',
				}"
			/>
		</li>
	</ul>
</template>

<style>
ul {
	display: grid;
	grid-template-rows: repeat(3, 1fr);
	grid-template-columns: repeat(3, 1fr);
	list-style: none;
}
img {
	cursor: pointer;
}
</style>
Implement your code

Explanation

Here is an explanation of the above code solution: ...