」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > React 中的樣式

React 中的樣式

發佈於2024-08-01
瀏覽:423

Styling in React

介紹

樣式是 Web 開發的重要方面,可確保您的應用程式具有視覺吸引力且使用者友好。 React 提供了多種設定元件樣式的方法,從傳統的 CSS 和 Sass 到現代的 CSS-in-JS 解決方案(例如 Styled-Components)。本週,我們將深入研究這些方法,並學習如何在您的 React 專案中有效地應用它們。

React 中樣式的重要性

正確的樣式可以增強使用者體驗,提高可用性,並使您的應用程式更具吸引力。了解不同的樣式技術可以讓您選擇最適合您的特定專案需求的方法。

傳統CSS

在 React 中使用 CSS:

  • 基本範例
  import React from 'react';
  import './App.css';

  function App() {
      return (
          

Hello, World!

); } export default App;
  • App.css
  .container {
      text-align: center;
      padding: 20px;
  }

  .title {
      color: blue;
      font-size: 2em;
  }

CSS 模組:

  • 例子
  import React from 'react';
  import styles from './App.module.css';

  function App() {
      return (
          

Hello, World!

); } export default App;
  • App.module.css
  .container {
      text-align: center;
      padding: 20px;
  }

  .title {
      color: blue;
      font-size: 2em;
  }

使用 Sass

安裝 Sass:

  • 安裝指令
  npm install node-sass

在 React 使用 Sass:

  • App.scss
  $primary-color: blue;
  $padding: 20px;

  .container {
      text-align: center;
      padding: $padding;
  }

  .title {
      color: $primary-color;
      font-size: 2em;
  }
  • 應用程式元件
  import React from 'react';
  import './App.scss';

  function App() {
      return (
          

Hello, World!

); } export default App;

Sass 嵌套樣式:

  • 例子
  .container {
      text-align: center;
      padding: 20px;

      .title {
          color: blue;
          font-size: 2em;

          &:hover {
              color: darkblue;
          }
      }
  }

樣式元件

樣式組件簡介:

  • 定義:使用標記範本文字來設計 React 元件樣式的函式庫。
  • 安裝
  npm install styled-components

使用樣式元件:

  • 例子
  import React from 'react';
  import styled from 'styled-components';

  const Container = styled.div`
      text-align: center;
      padding: 20px;
  `;

  const Title = styled.h1`
      color: blue;
      font-size: 2em;

      &:hover {
          color: darkblue;
      }
  `;

  function App() {
      return (
          
              Hello, World!
          
      );
  }

  export default App;

使用樣式元件進行主題化:

  • 創建主題
  import { ThemeProvider } from 'styled-components';

  const theme = {
      colors: {
          primary: 'blue',
          secondary: 'darkblue'
      },
      spacing: {
          padding: '20px'
      }
  };

  function App() {
      return (
          
              
                  Hello, World!
              
          
      );
  }
  • 使用主題值
  import styled from 'styled-components';

  const Container = styled.div`
      text-align: center;
      padding: ${(props) => props.theme.spacing.padding};
  `;

  const Title = styled.h1`
      color: ${(props) => props.theme.colors.primary};
      font-size: 2em;

      &:hover {
          color: ${(props) => props.theme.colors.secondary};
      }
  `;

結論

在 React 中選擇正確的樣式方法取決於您的專案要求和個人喜好。傳統的 CSS 和 Sass 提供熟悉性和簡單性,而 Styled-Components 提供動態和範圍內的樣式功能。掌握這些技術將幫助您建立美觀且可維護的使用者介面。

進一步學習的資源

  • 線上課程:Udemy、Pluralsight 和 freeCodeCamp 等網站提供有關 React 樣式技術的課程。
  • :Adam Boduch 的“React 和 React Native”和 Azat Mardan 的“React Quickly”。
  • 文件與參考文獻
    • 樣式元件文件
    • Sass 文件
    • React CSS 模組文件
  • 社群:加入 Stack Overflow、Reddit 和 GitHub 等平台上的開發者社群以獲得支援和交流。
版本聲明 本文轉載於:https://dev.to/suhaspalani/styling-in-react-1534?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 如何實時捕獲和流媒體以進行聊天機器人命令執行?
    如何實時捕獲和流媒體以進行聊天機器人命令執行?
    在開發能夠執行命令的chatbots的領域中,實時從命令執行實時捕獲Stdout,一個常見的需求是能夠檢索和顯示標準輸出(stdout)在cath cath cant cant cant cant cant cant cant cant interfaces in Chate cant inter...
    程式設計 發佈於2025-07-14
  • PHP與C++函數重載處理的區別
    PHP與C++函數重載處理的區別
    作為經驗豐富的C開發人員脫離謎題,您可能會遇到功能超載的概念。這個概念雖然在C中普遍,但在PHP中構成了獨特的挑戰。讓我們深入研究PHP功能過載的複雜性,並探索其提供的可能性。 在PHP中理解php的方法在PHP中,函數超載的概念(如C等語言)不存在。函數簽名僅由其名稱定義,而與他們的參數列表無關...
    程式設計 發佈於2025-07-14
  • Go語言如何動態發現導出包類型?
    Go語言如何動態發現導出包類型?
    與反射軟件包中的有限類型的發現能力相反,本文探討了在運行時發現所有包裝類型(尤其是struntime go import( “ FMT” “去/進口商” ) func main(){ pkg,err:= incorter.default()。導入(“ time”) ...
    程式設計 發佈於2025-07-14
  • 為什麼HTML無法打印頁碼及解決方案
    為什麼HTML無法打印頁碼及解決方案
    無法在html頁面上打印頁碼? @page規則在@Media內部和外部都無濟於事。 HTML:Customization:@page { margin: 10%; @top-center { font-family: sans-serif; font-weight: ...
    程式設計 發佈於2025-07-14
  • JavaScript計算兩個日期之間天數的方法
    JavaScript計算兩個日期之間天數的方法
    How to Calculate the Difference Between Dates in JavascriptAs you attempt to determine the difference between two dates in Javascript, consider this s...
    程式設計 發佈於2025-07-14
  • 如何使用“ JSON”軟件包解析JSON陣列?
    如何使用“ JSON”軟件包解析JSON陣列?
    parsing JSON與JSON軟件包 QUALDALS:考慮以下go代碼:字符串 } func main(){ datajson:=`[“ 1”,“ 2”,“ 3”]`` arr:= jsontype {} 摘要:= = json.unmarshal([] byte(...
    程式設計 發佈於2025-07-14
  • 為什麼我的CSS背景圖像出現?
    為什麼我的CSS背景圖像出現?
    故障排除:CSS背景圖像未出現 ,您的背景圖像儘管遵循教程說明,但您的背景圖像仍未加載。圖像和样式表位於相同的目錄中,但背景仍然是空白的白色帆布。 而不是不棄用的,您已經使用了CSS樣式: bockent {背景:封閉圖像文件名:背景圖:url(nickcage.jpg); 如果您的html,cs...
    程式設計 發佈於2025-07-14
  • 在C#中如何高效重複字符串字符用於縮進?
    在C#中如何高效重複字符串字符用於縮進?
    在基於項目的深度下固定字符串時,重複一個字符串以進行凹痕,很方便有效地有一種有效的方法來返回字符串重複指定的次數的字符串。使用指定的次數。 constructor 這將返回字符串“ -----”。 字符串凹痕= new String(' - ',depth); console.W...
    程式設計 發佈於2025-07-14
  • 為什麼我會收到MySQL錯誤#1089:錯誤的前綴密鑰?
    為什麼我會收到MySQL錯誤#1089:錯誤的前綴密鑰?
    mySQL錯誤#1089:錯誤的前綴鍵錯誤descript [#1089-不正確的前綴鍵在嘗試在表中創建一個prefix鍵時會出現。前綴鍵旨在索引字符串列的特定前綴長度長度,可以更快地搜索這些前綴。 了解prefix keys `這將在整個Movie_ID列上創建標準主鍵。主密鑰對於唯一識...
    程式設計 發佈於2025-07-14
  • Python中嵌套函數與閉包的區別是什麼
    Python中嵌套函數與閉包的區別是什麼
    嵌套函數與python 在python中的嵌套函數不被考慮閉合,因為它們不符合以下要求:不訪問局部範圍scliables to incling scliables在封裝範圍外執行範圍的局部範圍。 make_printer(msg): DEF打印機(): 打印(味精) ...
    程式設計 發佈於2025-07-14
  • 如何簡化PHP中的JSON解析以獲取多維陣列?
    如何簡化PHP中的JSON解析以獲取多維陣列?
    php 試圖在PHP中解析JSON數據的JSON可能具有挑戰性,尤其是在處理多維數組時。 To simplify the process, it's recommended to parse the JSON as an array rather than an object.To do...
    程式設計 發佈於2025-07-14
  • 如何在Chrome中居中選擇框文本?
    如何在Chrome中居中選擇框文本?
    選擇框的文本對齊:局部chrome-inly-ly-ly-lyly solument 您可能希望將文本中心集中在選擇框中,以獲取優化的原因或提高可訪問性。但是,在CSS中的選擇元素中手動添加一個文本 - 對屬性可能無法正常工作。 初始嘗試 state)</option> < o...
    程式設計 發佈於2025-07-14
  • 同實例無需轉儲複製MySQL數據庫方法
    同實例無需轉儲複製MySQL數據庫方法
    在同一實例上複製一個MySQL數據庫而無需轉儲在同一mySQL實例上複製數據庫,而無需創建InterMediate sqql script。以下方法為傳統的轉儲和IMPORT過程提供了更簡單的替代方法。 直接管道數據 MySQL手動概述了一種允許將mysqldump直接輸出到MySQL cli...
    程式設計 發佈於2025-07-14
  • Python元類工作原理及類創建與定制
    Python元類工作原理及類創建與定制
    python中的metaclasses是什麼? Metaclasses負責在Python中創建類對象。就像類創建實例一樣,元類也創建類。他們提供了對類創建過程的控制層,允許自定義類行為和屬性。 在Python中理解類作為對象的概念,類是描述用於創建新實例或對象的藍圖的對象。這意味著類本身是使用...
    程式設計 發佈於2025-07-14
  • Java數組中元素位置查找技巧
    Java數組中元素位置查找技巧
    在Java數組中檢索元素的位置 利用Java的反射API將數組轉換為列表中,允許您使用indexof方法。 (primitives)(鏈接到Mishax的解決方案) 用於排序陣列的數組此方法此方法返回元素的索引,如果發現了元素的索引,或一個負值,指示應放置元素的插入點。
    程式設計 發佈於2025-07-14

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

Copyright© 2022 湘ICP备2022001581号-3