Ithy Logo

如何使用 React 建置公司網站

全面指南:從環境設置到部署與優化

react js company website development

主要要點

  • 環境設置與工具選擇:確保正確安裝 Node.js 和 npm,選擇合適的 React 框架如 Create React App 或 Next.js。
  • 組件化設計與路由管理:利用 React 組件化架構,並使用 React Router 進行有效的路由管理。
  • 性能優化與 SEO:透過最佳化技術提升網站性能,並採用 SEO 優化策略提升搜尋引擎排名。

1. 環境設置

1.1 安裝 Node.js 和 npm

React 依賴於 Node.js 和 npm(Node Package Manager)。請按照以下步驟進行安裝:

  • 下載 Node.js:前往 Node.js 官方網站下載並安裝適合您作業系統的版本(建議使用 LTS 版)。
  • 驗證安裝:安裝完成後,打開終端機並運行以下命令以確認安裝是否成功:
    node -v
    npm -v
          
    您將看到 Node.js 和 npm 的版本號。

1.2 安裝 Create React App (CRA) 或其他框架

Create React App 是官方提供的工具,可快速初始化 React 專案。根據需求,您也可以選擇其他框架如 Next.js。

  • 使用 Create React App:
    npx create-react-app company-website
    cd company-website
          
  • 使用 Next.js:
    npx create-next-app@latest company-website
    cd company-website
          
    Next.js 更適合需要 SEO 和伺服器端渲染的網站。

2. 專案結構規劃

2.1 建立資料夾結構

良好的專案結構有助於代碼的可維護性和可擴展性。以下是建議的專案資料夾結構:


company-website/
├── node_modules/
├── public/
│   ├── index.html
│   └── ...
├── src/
│   ├── components/
│   │   ├── Header.js
│   │   ├── Footer.js
│   │   ├── HeroSection.js
│   │   └── ...
│   ├── pages/
│   │   ├── Home.js
│   │   ├── About.js
│   │   ├── Services.js
│   │   └── Contact.js
│   ├── styles/
│   │   ├── App.css
│   │   └── ...
│   ├── App.js
│   ├── index.js
│   └── ...
├── package.json
└── ...
  

2.2 使用版本控制

使用 Git 進行版本控制,並將專案推送到 GitHub 或其他版本控制平台,以便團隊協作和代碼管理。


3. 創建 React 組件

3.1 組件化設計

將網站拆分為多個可重用的組件,以提升代碼的可維護性和可重用性。常見的組件包括:

  • Header.js:網站的頂部導航欄。
  • Footer.js:網站的頁尾資訊。
  • HeroSection.js:首頁的主視覺區塊。
  • AboutUs.js:公司介紹頁面。
  • Services.js:服務內容展示。
  • ContactForm.js:聯絡表單。

3.2 範例:創建 Header 組件

import React from 'react';

const Header = () => {
  return (
    <header>
      <nav>
        <ul>
          <li><a href="/">首頁</a></li>
          <li><a href="/about">關於我們</a></li>
          <li><a href="/services">服務</a></li>
          <li><a href="/contact">聯絡我們</a></li>
        </ul>
      </nav>
    </header>
  );
};

export default Header;
  

4. 路由設置

4.1 安裝 React Router

React Router 用於管理網站的多頁面路由。安裝方式如下:

npm install react-router-dom
  

4.2 設置路由

import React from 'react';
import { BrowserRouter as Router, Route, Routes } from 'react-router-dom';
import Header from './components/Header';
import Home from './pages/Home';
import About from './pages/About';
import Services from './pages/Services';
import Contact from './pages/Contact';

const App = () => {
  return (
    <Router>
      <Header />
      <Routes>
        <Route path="/" element=<Home /> />
        <Route path="/about" element=<About /> />
        <Route path="/services" element=<Services /> />
        <Route path="/contact" element=<Contact /> />
      </Routes>
    </Router>
  );
};

export default App;
  

5. 設計與樣式

5.1 選擇 CSS 框架或工具

根據需求選擇合適的樣式解決方案:

  • 傳統 CSS:src/styles 目錄下創建 CSS 文件,並在組件中導入。
  • CSS-in-JS:使用 Styled ComponentsEmotion 等庫來編寫樣式。
  • CSS 框架:Tailwind CSSBootstrap,快速構建現代化的 UI。

5.2 範例:使用 CSS 設計 Header

/* styles.css */
header {
  background-color: #333;
  color: white;
  padding: 1rem;
}

nav ul {
  list-style: none;
  display: flex;
  gap: 1rem;
}

nav ul li a {
  color: white;
  text-decoration: none;
}
  
// Header.js
import React from 'react';
import '../styles/styles.css';

const Header = () => {
  return (
    <header>
      <nav>
        <ul>
          <li><a href="/">首頁</a></li>
          <li><a href="/about">關於我們</a></li>
          <li><a href="/services">服務</a></li>
          <li><a href="/contact">聯絡我們</a></li>
        </ul>
      </nav>
    </header>
  );
};

export default Header;
  

6. 功能開發

6.1 狀態管理與 Hooks

使用 React 的 useStateuseEffect Hooks 來管理組件的狀態和生命週期。

6.2 表單處理

開發聯絡表單,並進行使用者輸入驗證。

// ContactForm.js
import React, { useState } from 'react';

const ContactForm = () => {
  const [formData, setFormData] = useState({ name: '', email: '', message: '' });

  const handleSubmit = (e) => {
    e.preventDefault();
    console.log('Form data submitted:', formData);
    // 可以在此處整合後端服務,如 Firebase 或 Express.js
  };

  return (
    <form onSubmit={handleSubmit}>
      <input
        type="text"
        placeholder="您的姓名"
        value={formData.name}
        onChange={(e) => setFormData({ ...formData, name: e.target.value })}
        required
      />
      <input
        type="email"
        placeholder="您的電郵"
        value={formData.email}
        onChange={(e) => setFormData({ ...formData, email: e.target.value })}
        required
      />
      <textarea
        placeholder="您的訊息"
        value={formData.message}
        onChange={(e) => setFormData({ ...formData, message: e.target.value })}
        required
      ></textarea>
      <button type="submit">提交</button>
    </form>
  );
};

export default ContactForm;
  

6.3 整合第三方服務

可以整合各種第三方服務來豐富網站功能,如:


7. 優化與維護

7.1 性能優化

使用 React 的最佳化技術來提升應用性能:

  • React.memo:避免不必要的重新渲染。
  • useMemo 和 useCallback:優化函數和變量的記憶化。
  • Code Splitting:利用動態導入(dynamic import)來分割代碼。
// 使用 React.lazy 和 Suspense 進行懶加載
const LazyComponent = React.lazy(() => import('./LazyComponent'));

function App() {
  return (
    <React.Suspense fallback=<div>加載中...</div>>
      <LazyComponent />
    </React.Suspense>
  );
}
  

7.2 SEO 優化

提高網站在搜尋引擎的可見度:

  • React Helmet:管理頁面的 meta 標籤。
  • 使用 Next.js:提供內建的 SEO 支援和伺服器端渲染。
import { Helmet } from 'react-helmet';

const Home = () => {
  return (
    <div>
      <Helmet>
        <title>公司首頁</title>
        <meta name="description" content="這是我們公司的首頁。" />
      </Helmet>
      <h1>歡迎來到我們的公司</h1>
      ...
    </div>
  );
};
  

7.3 持續更新與維護

定期更新依賴庫、修復漏洞,並根據使用者反饋進行功能改進。


8. 部署

8.1 本地測試

在本地啟動開發伺服器,檢查網站是否正常運行:

npm start
  

打開瀏覽器訪問 http://localhost:3000 查看網站。

8.2 部署到生產環境

選擇合適的部署平台,將網站部署到線上:

  • Vercel:適合使用 Next.js 開發的應用。
  • Netlify:支援 Create React App 和其他靜態網站生成器。
  • GitHub Pages:免費托管靜態網站。
  • AWS Amplify:提供完整的部署和托管解決方案。

基本部署步驟:

  1. 運行 npm run build 生成生產版本:
  2. npm run build
        
  3. 將生成的 build 資料夾上傳到所選擇的部署平台。

8.3 設定自訂域名

透過部署平台的設置,將自訂域名指向您的網站,提升品牌形象。

8.4 進行效能測試

使用工具如 Google Lighthouse 進行網站效能測試,並根據報告進行優化。


總結

使用 React 建置公司網站能夠提供靈活且高效的開發體驗。通過正確的環境設置、組件化設計、有效的路由管理、樣式設計、功能開發以及部署與優化,您可以建立一個專業且功能完善的公司網站。隨著網站的運行,持續進行性能優化和內容更新,確保網站能夠滿足不斷變化的業務需求和使用者期望。


參考資料


Last updated January 24, 2025
Search Again