iT邦幫忙

2022 iThome 鐵人賽

DAY 15
0
Modern Web

Full Stack Web Development 網站實作系列 第 15

Day 15 使用Next.js, Tailwind CSS 和 Supabase 做一個影像畫廊 image gallery app (6) -- 顯示 Supabase 資料在螢幕上

  • 分享至 

  • xImage
  •  

將 Supabase 資料秀在螢幕上
從 Supabase 成功讀取資料後,要秀出這些資料在螢幕上,需要兩個動作。
每一個影像(image)需要一個圖片卡來放圖片及圖片相關文字資料,我們也需要一個 container 來放這些圖片卡。
首先,建立一個顯示圖片的 grid container 元件(PostImage.js)後,再新增圖片卡的元件(ImageCard.js)。
新增 /components/PostImage.js 內容如下:

import ImageCard from "./ImageCard";

const PostImage = ({ twimgs }) => {
  return (
    <div className="bg-gray-700 container max-w-7xl mx-auto pb-10 px-4">
      <h1 className="text-white text-2xl mt-8 mb-5">福興穀倉 華國美學</h1>
      {twimgs.map(twimg => <ImageCard twimg={twimg} key={twimg.id} />)}
    </div>
  );
};

export default PostImage;

新增 /components/ImageCard.js 內容如下:

const ImageCard = ({ twimg }) => {
  return (
    <div>{twimg.title}</div>
  )
};

export default ImageCard;

pages/index.js 加入 PostImage 元件:
https://ithelp.ithome.com.tw/upload/images/20220930/20129584RwKkmAKKqv.png

確認 title 有沒有出現在螢幕上:
https://ithelp.ithome.com.tw/upload/images/20220930/20129584dsv7wFOffl.png

設計卡片風格(styling the card)
使用 Image 元件優化圖片,需要定義寬度(width)和高度(height)。
修改 /components/ImageCard.js:

import Image from "next/image";

const ImageCard = ({ twimg }) => {
  return (
    <div className="bg-white shadow-sm rounded-md cursosr-pointer">
        <Image src={twimg.imageSrc} width={960} height={540} />
    </div>
  )
};

export default ImageCard;

使用 Image 元件,需到 next.config.js 設定圖片來源網站(domain)資料。我們使用 twitter 網站圖片,所以加 images: { domains: ['pbs.twimg.com'], }, 到 next.config.js 檔案裡。

/** @type {import('next').NextConfig} */
const nextConfig = {
  reactStrictMode: true,
  swcMinify: true,
  images: {
    domains: ['pbs.twimg.com'],
  },
}

module.exports = nextConfig

重新執行 npm run dev 看圖片是否顯示在螢幕上。
https://ithelp.ithome.com.tw/upload/images/20220930/20129584CZvV4zp6zb.png


上一篇
Day 14 使用Next.js, Tailwind CSS 和 Supabase 做一個影像畫廊 image gallery app (5) -- 讀取 Supabase 資料
下一篇
Day 16 使用Next.js, Tailwind CSS 和 Supabase 做一個影像畫廊 image gallery app (8) -- 顯示 Supabase 資料在螢幕上
系列文
Full Stack Web Development 網站實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言