」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 使用 Next.js 和 Netlify 建立首都應用程式

使用 Next.js 和 Netlify 建立首都應用程式

發佈於2024-07-29
瀏覽:758

Building a Capital City App With Next.js and Netlify

介紹
今天我們將學習如何使用 Next.js 和 Netlify 建立首都應用程式。在當今快節奏的數位世界中,創建互動式動態 Web 應用程式對於吸引用戶並為他們提供無縫體驗至關重要。 Next.js 是一種流行的 React 框架,它允許開發人員輕鬆建立強大的伺服器端渲染 (SSR) 應用程式。與現代 Web 開發平台 Netlify 結合使用時,您可以輕鬆部署應用程式並利用其強大的功能,例如持續部署、無伺服器功能和全域 CDN。在本文中,我們將探討如何使用 Next.js 建立 Capital City 應用程式並將其部署在 Netlify 上。

我們正在使用什麼

  • Next.js
  • Netlify
  • TypeScript
  • Tailwind CSS

先決條件
在我們深入之前,請確保您已安裝以下軟體:

  • Node.js(v14 或更高版本)
  • npm 或紗線
  • Git

設定項目

首先,讓我們建立一個新的 Next.js 專案。打開終端並執行以下命令:

npx create-next-app Capital-city-app

導航至專案目錄:

cd 首都-城市-應用

創建 Capital City 應用程式

  1. 設定 API 對於我們的 Capital City 應用程序,我們將使用免費的 API,該 API 提供有關國家及其首都的數據。 REST 國家 API 是此類 API 之一。在 lib 目錄中建立一個名為 api.js 的檔案以從 API 取得資料:
export async function getCountries() {
    const res = await fetch('https://restcountries.com/v3.1/all');
    if (!res.ok) {
      throw new Error('Failed to fetch data')
    }
    const data = await res.json();
    return data;
  }
  1. 創建組件 讓我們建立一個 CountryCard 組件來顯示各個國家/地區的詳細資訊。在元件目錄中建立一個名為 CountryCard.js 的檔案:
import React from 'react';

const CountryCard = ({ country }) => {
  return (
    

{country.name.common}

Capital: {country.capital}

Region: {country.region}

{`${country.name.common}
); } export default CountryCard;
  1. 取得並顯示數據 在pages/index.js 檔案中,取得國家/地區資料並使用 CountryCard 元件顯示它:
import { getCountries } from '../app/lib/api';
import CountryCard from '../components/CountryCard';

export async function getStaticProps() {
  const countries = await getCountries();
  return {
    props: {
    countries,
    },
  };
}

const Home = ({ countries }) => {
  return (
    

Capital City App

{countries.map((country) => ( ))}
); }; export default Home;

在 Netlify 部署

1.設定儲存庫

在專案中初始化 git 儲存庫:
git 初始化
git add .
git commit -m "初始提交"

2.部署到 Netlify

  1. 在 Netlify 上建立新網站:前往 Netlify 並登入。點選“New site from Git”。
  2. 連接到您的 Git 儲存庫:選擇您的 Git 提供者(GitHub、GitLab、Bitbucket)並選擇您的儲存庫。
  3. 配置您的建置設定:
  • 建置指令:下一個建置
  • 發布目錄:.next

部署網站:按一下「部署網站」。 Netlify 將自動建置和部署您的網站。

3.設定持續部署

每當您將變更推送到儲存庫時,Netlify 都會自動觸發新的建置並部署應用程式的更新版本。

結論

恭喜!您已使用 Next.js 和 Netlify 成功建置並部署了 Capital City 應用程式。該應用程式從 REST 國家/地區 API 獲取數據並以用戶友好的方式顯示它。透過 Next.js 的伺服器端渲染和 Netlify 強大的部署功能,您可以有效率地建立和部署動態 Web 應用程式。

Next.js 和 Netlify 為現代 Web 開發提供了強大的組合,使您能夠專注於建立出色的功能,同時為您處理部署和擴展的複雜性。快樂編碼!

版本聲明 本文轉載於:https://dev.to/dianaiminza/building-a-capital-city-app-with-nextjs-and-netlify-3dc6?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 如何從Google API中檢索最新的jQuery庫?
    如何從Google API中檢索最新的jQuery庫?
    從Google APIS 問題中提供的jQuery URL是版本1.2.6。對於檢索最新版本,以前有一種使用特定版本號的替代方法,它是使用以下語法: https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js(google hosted...
    程式設計 發佈於2025-01-31
  • 如何使用不同數量列的聯合數據庫表?
    如何使用不同數量列的聯合數據庫表?
    合併列數不同的表 當嘗試合併列數不同的數據庫表時,可能會遇到挑戰。一種直接的方法是在列數較少的表中,為缺失的列追加空值。 例如,考慮兩個表,表 A 和表 B,其中表 A 的列數多於表 B。為了合併這些表,同時處理表 B 中缺失的列,請按照以下步驟操作: 確定表 B 中缺失的列,並將它們添加到表的...
    程式設計 發佈於2025-01-31
  • 哪種方法更有效地用於點 - 填點檢測:射線跟踪或matplotlib \的路徑contains_points?
    哪種方法更有效地用於點 - 填點檢測:射線跟踪或matplotlib \的路徑contains_points?
    在Python 射線tracing方法 matplotlib路徑對象表示多邊形。它檢查給定點是否位於定義路徑內。如提供的代碼段所示: polygon = [[np.sin(x)0.5,np.cos (x)0.5]在np.linspace中的x(0,2*np.pi,100) ] points = ...
    程式設計 發佈於2025-01-31
  • 如何限制動態大小的父元素中元素的滾動範圍?
    如何限制動態大小的父元素中元素的滾動範圍?
    在交互式界面中實現垂直滾動元素的CSS高度限制 考慮一個佈局,其中我們具有與可滾動的映射div一起移動的subollable map div用戶的垂直滾動,同時保持其與固定側邊欄的對齊方式。但是,地圖的滾動無限期擴展,超過了視口的高度,阻止用戶訪問頁面頁腳。 可以限制地圖的滾動,我們可以利用CS...
    程式設計 發佈於2025-01-31
  • 如何使用char_length()在mySQL中按字符串長度對數據進行排序?
    如何使用char_length()在mySQL中按字符串長度對數據進行排序?
    [2 using the built-in CHAR_LENGTH() function.Difference between CHAR_LENGTH() and LENGTH()CHAR_LENGTH():返回字符串中字符數的數量,考慮多字節字符編碼(例如,UTF-8)。 此查詢將從指定的表中...
    程式設計 發佈於2025-01-31
  • 對象擬合:IE和Edge中的封面失敗,如何修復?
    對象擬合:IE和Edge中的封面失敗,如何修復?
    解決此問題,我們採用了一個巧妙的CSS解決方案來解決問題: transform:translate:translate(-50%,-50%); height:100%; 高度:auto; 寬度:100%; //對於水平塊 ,使用絕對定位將圖像定位在中心,以object-fit:object-f...
    程式設計 發佈於2025-01-31
  • 如何使用PHP將斑點(圖像)正確插入MySQL?
    如何使用PHP將斑點(圖像)正確插入MySQL?
    在嘗試將image存儲在mysql數據庫中時,您可能會遇到一個可能會遇到問題。本指南將提供成功存儲您的圖像數據的解決方案。 easudy values('$ this-> ; image_id','file_get_contents($ tmp_imag...
    程式設計 發佈於2025-01-31
  • Java是否允許多種返回類型:仔細研究通用方法?
    Java是否允許多種返回類型:仔細研究通用方法?
    在java中的多個返回類型:一個誤解介紹,其中foo是自定義類。該方法聲明似乎擁有兩種返回類型:列表和E。但是,情況確實如此嗎? 通用方法:拆開神秘 [方法僅具有單一的返回類型。相反,它採用機制,如鑽石符號“ ”。 分解方法簽名: :本節定義了一個通用類型參數,E。它表示該方法接受了擴展foo類...
    程式設計 發佈於2025-01-31
  • HTML格式標籤
    HTML格式標籤
    HTML 格式化元素 **HTML Formatting is a process of formatting text for better look and feel. HTML provides us ability to format text without us...
    程式設計 發佈於2025-01-31
  • \“(1)vs.(;;):編譯器優化是否消除了性能差異?\”
    \“(1)vs.(;;):編譯器優化是否消除了性能差異?\”
    使用(1)而不是(;;)會導致無限循環的性能差異? 現代編譯器,(1)和(;;)之間沒有性能差異。 是如何實現這些循環的技術分析在編譯器中: perl: S-> 7 8 unstack v-> 4 -e語法ok 在GCC中,兩者都循環到相同的彙編代碼中,如下所示:。 globl t_時 ...
    程式設計 發佈於2025-01-31
  • 如何干淨地刪除匿名JavaScript事件處理程序?
    如何干淨地刪除匿名JavaScript事件處理程序?
    在這里工作/},false); 不幸的是,答案是否。除非在Creation中存儲對處理程序的引用。 要解決此問題,請考慮將事件處理程序存儲在中心位置,例如頁面的主要對象,請考慮將事件處理程序存儲在中心位置,否則無法清理匿名事件處理程序。 。這允許在需要時輕鬆迭代和清潔處理程序。
    程式設計 發佈於2025-01-31
  • 為什麼使用固定定位時,為什麼具有100%網格板柱的網格超越身體?
    為什麼使用固定定位時,為什麼具有100%網格板柱的網格超越身體?
    網格超過身體,用100%grid-template-columns 問題:考慮以下CSS和HTML: position:fixed ; grid-template-columns:40%60%; grid-gap:5px; 背景: #eee; 當位置未固定時,網格將正確顯示。但是...
    程式設計 發佈於2025-01-31
  • 大批
    大批
    [2 數組是對象,因此它們在JS中也具有方法。 切片(開始):在新數組中提取部分數組,而無需突變原始數組。 令ARR = ['a','b','c','d','e']; // USECASE:提取直到索引作...
    程式設計 發佈於2025-01-31
  • 如何克服PHP的功能重新定義限制?
    如何克服PHP的功能重新定義限制?
    克服PHP的函數重新定義限制在PHP中,多次定義一個相同名稱的函數是一個no-no。嘗試這樣做,如提供的代碼段所示,將導致可怕的“不能重新列出”錯誤。 // error:“ coss redeclare foo()” 但是,php工具腰帶中有一個隱藏的寶石:runkit擴展。它使您能夠靈活...
    程式設計 發佈於2025-01-31
  • PHP陣列鍵值異常:了解07和08的好奇情況
    PHP陣列鍵值異常:了解07和08的好奇情況
    PHP數組鍵值問題,使用07&08 在給定數月的數組中,鍵值07和08呈現令人困惑的行為時,就會出現一個不尋常的問題。運行print_r($月份)返回意外結果:鍵“ 07”丟失,而鍵“ 08”分配給了9月的值。 此問題源於PHP對領先零的解釋。當一個數字帶有0(例如07或08)的前綴時,PHP...
    程式設計 發佈於2025-01-31

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3