最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

React css-in-js基礎(chǔ)介紹與應(yīng)用

 更新時(shí)間:2022年09月28日 16:24:55   作者:月光曬了很涼快  
隨著React、Vue等支持組件化的MVVM前端框架越來越流行,在js中直接編寫css的技術(shù)方案也越來越被大家所接受。為什么前端開發(fā)者們更青睞于這些css-in-js的方案呢,下面帶你了解它

1. 介紹

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

styled-components 應(yīng)該是 CSS-in-JS 最熱門的一個(gè)庫,通過 styled-components,你可以使用 ES6 的標(biāo)簽?zāi)0遄址Z法,為需要 styled 的 Component 定義一系列 CSS 屬性,當(dāng)該組件的 JS 代碼被解析執(zhí)行的時(shí)候,styled-components 會動(dòng)態(tài)生成一個(gè) CSS 選擇器,并把對應(yīng)的 CSS 樣式通過 style 標(biāo)簽的形式插入到 head 標(biāo)簽里面。動(dòng)態(tài)生成的 CSS 選擇器會有一小段哈希值來保證全局唯一性來避免樣式發(fā)生沖突。

在react項(xiàng)目中,可以讓樣式命名不沖突的方案

  • 定義樣式名稱時(shí),就讓它唯一
  • 使用內(nèi)置的cssModule
  • css-in-js 把css當(dāng)作js來使用

2. 使用

首先需要安裝相關(guān)包:

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'
// 導(dǎo)入樣式組件
import { ChildContainer, TitleContainer, SubTitleContainer, ContentContainer } from './style'
class Child extends Component {
  render() {
    return (
      <ChildContainer>
        {/* <TitleContainer>我是一個(gè)child組件</TitleContainer> */}
        {/* 嵌套使用 */}
        <div className="title">我是一個(gè)child組件</div>
        <SubTitleContainer>我是一個(gè)副標(biāo)題</SubTitleContainer>
        <hr />
        {/* 屬性傳遞 */}
        <ContentContainer color='#00f' size="20">
          我是內(nèi)容
        </ContentContainer>
      </ChildContainer>
    )
  }
}
export default Child

style.js:

// 使用css-in-js技術(shù)方案完成 react項(xiàng)目中的樣式編寫
// styled-components把樣式當(dāng)作組件來定義和使用,樣式就是組件,組件就是樣式
import styled from 'styled-components'
// 語法
// export const ChildContainer = styled.html標(biāo)簽名`樣式`
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;
`

到此這篇關(guān)于React css-in-js基礎(chǔ)介紹與應(yīng)用的文章就介紹到這了,更多相關(guān)React css-in-js內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • react解析html字符串方法實(shí)現(xiàn)

    react解析html字符串方法實(shí)現(xiàn)

    在使用reactjs庫的時(shí)候,會遇到將一段html的字符串,然后要將它插入頁面中以html的形式展現(xiàn),本文主要介紹了react解析html字符串方法實(shí)現(xiàn),感興趣的可以了解一下
    2023-12-12
  • React-hook-form-mui基本使用教程(入門篇)

    React-hook-form-mui基本使用教程(入門篇)

    react-hook-form-mui可以幫助開發(fā)人員更輕松地構(gòu)建表單,它結(jié)合了React?Hook?Form和Material-UI組件庫,使用react-hook-form-mui,開發(fā)人員可以更快速地構(gòu)建表單,并且可以輕松地進(jìn)行表單驗(yàn)證和數(shù)據(jù)處理,本文介紹React-hook-form-mui基本使用,感興趣的朋友一起看看吧
    2024-02-02
  • React jsx轉(zhuǎn)換與createElement使用超詳細(xì)講解

    React jsx轉(zhuǎn)換與createElement使用超詳細(xì)講解

    這篇文章主要介紹了React jsx轉(zhuǎn)換與createElement使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-11-11
  • 基于React實(shí)現(xiàn)虛擬滾動(dòng)的方案詳解

    基于React實(shí)現(xiàn)虛擬滾動(dòng)的方案詳解

    這篇文章將以固定高度和非固定高度兩種場景展開React中虛擬滾動(dòng)的實(shí)現(xiàn),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-03-03
  • 重新理解?React?useRef原理

    重新理解?React?useRef原理

    這篇文章主要為大家介紹了React?useRef原理的深入理解分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • React?Native采用Hermes熱更新打包方案詳解

    React?Native采用Hermes熱更新打包方案詳解

    這篇文章主要介紹了React?Native采用Hermes熱更新打包實(shí)戰(zhàn),在傳統(tǒng)的熱更新方案中,我們實(shí)現(xiàn)熱更新需要借助code-push開源方案,包括熱更新包的發(fā)布兩種方式詳解,感興趣的朋友一起看看吧
    2022-05-05
  • jsoneditor二次封裝實(shí)時(shí)預(yù)覽json編輯器組件react版

    jsoneditor二次封裝實(shí)時(shí)預(yù)覽json編輯器組件react版

    這篇文章主要為大家介紹了jsoneditor二次封裝實(shí)時(shí)預(yù)覽json編輯器組件react版示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • React中嵌套組件與被嵌套組件的通信過程

    React中嵌套組件與被嵌套組件的通信過程

    這篇文章主要介紹了React中嵌套組件與被嵌套組件的通信過程,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-07-07
  • 淺談React碰到v-if

    淺談React碰到v-if

    這篇文章主要介紹了淺談React碰到v-if,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-11-11
  • 完美解決react-codemirror2?編輯器需點(diǎn)擊一下或者延時(shí)才顯示數(shù)據(jù)的問題

    完美解決react-codemirror2?編輯器需點(diǎn)擊一下或者延時(shí)才顯示數(shù)據(jù)的問題

    這篇文章主要介紹了react-codemirror2編輯器需點(diǎn)擊一下或者延時(shí)才顯示數(shù)據(jù)的問題,解決方法也很簡單,需要手動(dòng)引入自動(dòng)刷新的插件,配置一下參數(shù)就可以了,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-08-08

最新評論

永嘉县| 田阳县| 湖南省| 铜陵市| 长汀县| 潜江市| 临朐县| 故城县| 南投市| 汝州市| 邯郸市| 深泽县| 长宁县| 苍溪县| 东乡| 巩义市| 望谟县| 灌南县| 宝兴县| 尚志市| 新乡县| 大英县| 阿克苏市| 水富县| 林口县| 淮滨县| 本溪| 阿拉善盟| 乐山市| 徐汇区| 顺义区| 上栗县| 海丰县| 京山县| 大余县| 枣强县| 万安县| 谢通门县| 西宁市| 永吉县| 汉川市|