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: ...
Ask