中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

React?css-in-js如何應用

發布時間:2022-10-22 14:44:42 來源:億速云 閱讀:65 作者:iii 欄目:開發技術

本篇內容介紹了“React css-in-js如何應用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

1. 介紹

CSS-in-JS 是一種技術,而不是一個具體的庫實現。簡單來說 CSS-in-JS 就是將應用的css樣式寫在 JavaScript 文件里面,而不是獨立為一些 css,scss 或 less 之類的文件,這樣你就可以在 CSS 中使用一些屬于JS的諸如模塊聲明,變量定義,函數調用和條件判斷等語言特性來提供靈活的可擴展的樣式定義。CSS-in-JS 在 React 社區的熱度是最高的,這是因為 React 本身不會管用戶怎么去為組件定義樣式的問題,而 Vue 有屬于框架自己的一套定義樣式的方案。

styled-components 應該是 CSS-in-JS 最熱門的一個庫,通過 styled-components,你可以使用 ES6 的標簽模板字符串語法,為需要 styled 的 Component 定義一系列 CSS 屬性,當該組件的 JS 代碼被解析執行的時候,styled-components 會動態生成一個 CSS 選擇器,并把對應的 CSS 樣式通過 style 標簽的形式插入到 head 標簽里面。動態生成的 CSS 選擇器會有一小段哈希值來保證全局唯一性來避免樣式發生沖突。

在react項目中,可以讓樣式命名不沖突的方案

  • 定義樣式名稱時,就讓它唯一

  • 使用內置的cssModule

  • css-in-js 把css當作js來使用

2. 使用

首先需要安裝相關包:

yarn add styled-components

使用:

App.jsx:

import React, { Component } from 'react'
import Child from './components/Child-07-樣式'
class App extends Component {
  render() {
    return (
      <div>
        <Child />
      </div>
    )
  }
}
export default App

Child.jsx:

import React, { Component } from 'react'
// 導入樣式組件
import { ChildContainer, TitleContainer, SubTitleContainer, ContentContainer } from './style'
class Child extends Component {
  render() {
    return (
      <ChildContainer>
        {/* <TitleContainer>我是一個child組件</TitleContainer> */}
        {/* 嵌套使用 */}
        <div className="title">我是一個child組件</div>
        <SubTitleContainer>我是一個副標題</SubTitleContainer>
        <hr />
        {/* 屬性傳遞 */}
        <ContentContainer color='#00f' size="20">
          我是內容
        </ContentContainer>
      </ChildContainer>
    )
  }
}
export default Child

style.js:

// 使用css-in-js技術方案完成 react項目中的樣式編寫
// styled-components把樣式當作組件來定義和使用,樣式就是組件,組件就是樣式
import styled from 'styled-components'
// 語法
// export const ChildContainer = styled.html標簽名`樣式`
export const ChildContainer = styled.div`
  /* 在此字符串模板中,寫css就可以了 */
  font-size: 30px;
  color:#f0f;
  /* 嵌套定義 */
  .title{
    font-size:18px;
  }
`
export const TitleContainer = styled.div`
  color:red;
  font-size:18px;
`
// 樣式繼承
export const SubTitleContainer = styled(TitleContainer)`
  font-size:14px;
`
// 在樣式中獲取樣式組件中的屬性信息
export const ContentContainer = styled.div`
  color:${props => props.color || '#888'};
  font-size: ${props => props.size || 12}px;
`

“React css-in-js如何應用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

囊谦县| 尉犁县| 沙坪坝区| 合水县| 蒙自县| 高邑县| 霞浦县| 鹤壁市| 兴文县| 孟州市| 眉山市| 浦北县| 寻乌县| 青阳县| 庆城县| 博乐市| 宜丰县| 东乌珠穆沁旗| 新宁县| 龙口市| 永丰县| 彭山县| 扎兰屯市| 马山县| 平顶山市| 新巴尔虎左旗| 中宁县| 威海市| 那坡县| 扎囊县| 乐山市| 丰原市| 浮山县| 石河子市| 黄山市| 江川县| 万山特区| 洛南县| 北流市| 淮南市| 朝阳区|