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

如何用react優(yōu)雅的書寫CSS

 更新時(shí)間:2021年04月16日 08:34:19   作者:ws_qy  
這篇文章主要介紹了如何用react優(yōu)雅的書寫CSS,幫助大家更好的理解和學(xué)習(xí)使用react,感興趣的朋友可以了解下

1.內(nèi)聯(lián)樣式

優(yōu)點(diǎn):這種方式較為簡單,一目了然,給標(biāo)簽添加style屬性。

缺點(diǎn): 這種方式可以造成項(xiàng)目結(jié)構(gòu)較為臃腫,造成css命名沖突。

import React, { Component } from 'react'
import PropTypes from 'prop-types'
export default class index extends Component {
    static propTypes = {
     title: PropTypes.string
    }
    render() {
        const h1Style={textAlign:'center',marginBottom:'20px',lineHeight:'35px',
        height:'30px'}
        const {title}=this.props
        return (
         <div>
             <h1 style={h1Style}>{title}</h1>
             <hr/>
         </div>
        )
    }
}

2.使用import導(dǎo)入方式

優(yōu)點(diǎn):這種方式使用起來更加靈巧,類似于css中的外部引入

缺點(diǎn):因?yàn)閞eact樣式默認(rèn)是全局樣式,很有可能造成樣式?jīng)_突

使用:新建css文件,在jsx語法中通過className屬性設(shè)置類名,在css使用類名,這種方式可以使用三元表達(dá)式,通過定義變量來選擇類名。

import React, { Component } from 'react'
import "./index.css"
export default class index extends Component {
    state={
        flag:true
    }
changeColor=()=>{
    this.setState((state,props)=>{
        return{
           flag:!state.flag
        }
    })
}
    render() {
        const {flag}=this.state
        return (
            <div>
                <h1 className={flag?'blueColor':'redColor'}>莫等閑,白了少年頭</h1>
                <button onClick={this.changeColor} className="btnStyle">點(diǎn)擊更改字體顏色</button>
            </div>
        )
    }
}

.blueColor{
    color: blue;
}
.redColor{
    color: red;
}
.btnStyle{
    width: 260px;
    height: 50px;
    background-color: aqua;
    color: #fff;
    border:none;
    font-size: 28px;
    border-radius: 10px;
}

3.css module模塊導(dǎo)出

優(yōu)點(diǎn):不會(huì)造成命名沖突,樣式局部有效

缺點(diǎn):太過麻煩,每次都需要模塊導(dǎo)入導(dǎo)出,相當(dāng)于將css所有類名作為一個(gè)對(duì)象的屬性,在需要使用該對(duì)象屬性時(shí),通過調(diào)用對(duì)象屬性的方式調(diào)用類名,解決css沖突的方式是給不同的類名添加前綴,類似于vue中給style設(shè)置module

使用:

  • 在cra腳手架中只要在父組件中引入了css樣式,那么這個(gè)樣式就是全局樣式
  • 在react中用模塊化來解決樣式?jīng)_突的問題
  • 在cra腳手架中,如果某個(gè)樣式文件要開啟模塊化,只需要把樣式文件命名為xx.module.css/xx.module.scss就可以了

import React,{FC,useState} from "react"
import Cmittem from "@/components1/cmittem"
import cssObj from "./cmtlist.module.scss"
const Cmtlist:FC<{}>=(props)=>{
    return (
        <div>
             <h1 className={cssObj.title}>評(píng)論列表</h1>
       
       </div>
    )
}

export default Cmtlist

4.使用styled-components

優(yōu)點(diǎn): 使用模板字符串標(biāo)簽+樣式組合后是一個(gè)大寫字母開頭表示的組件,比如可以說是將react開發(fā)中最流行的一些寫法整合起來,對(duì)于React開發(fā)者來說,是非常好入手的。那么,在react組件中,使用外部css還是組件css,不同的開發(fā)者習(xí)慣不同。

使用:

需要安裝styled-components

npm i styled-components或者yarn add styled-components

vscode安裝插件便于書寫

4.1初步使用

import 'antd/dist/antd.less'
import styled from 'styled-components'
function App() {
 const HomeWrapper=styled.div`
 font-size:50px;
 color:red;
 span{
   color:orange;
   &.active{
      color:green;
   }
   &:hover{
     color:blue;
     font-size:40px;
   }
   &::after{
     content:'ssss'
   }
   }
 `
  return (
    <div className="App">
 <h1 >我是一個(gè)標(biāo)題</h1>
 <HomeWrapper>
 <h2>我是一個(gè)副標(biāo)題</h2>
   <span>輪播1</span>
   <span className="active">輪播2</span>
   <span>輪播3</span>
   <span>輪播4</span>
 </HomeWrapper>
    </div>
  );
}

export default App;

4.2通過attrs設(shè)置屬性

import 'antd/dist/antd.less'
import styled from 'styled-components'
function App() {
 const ChangeInput=styled.input.attrs({
   placeholder:'wangsu',
   bgColor:'red'
 })`
 background-color:#7a7ab4;
 color:${props=>props.bgColor}
 `
  return (
    <div className="App">
 <h1 >我是一個(gè)標(biāo)題</h1>
 <ChangeInput type="text"/>
    </div>
  );
}

export default App;

4.3css繼承

import React, { Component } from 'react'
import styled from 'styled-components'
const HYbutton=styled.button`
   color:red;
   border:1px solid #ccc;
   padding:10px 20px;
`
//這里使用繼承
const XLbutton=styled(HYbutton)`
background-color:blue;
`
export default class Button extends Component {

    render() {
        return (
            <div>
                <HYbutton>這是一個(gè)按鈕</HYbutton>
                <XLbutton>這是一個(gè)繼承按鈕</XLbutton>
            </div>
        )
    }
}

這幾天在開發(fā)項(xiàng)目時(shí),一直使用的這種方式,感覺很新穎,雖然社區(qū)各有爭議,但是個(gè)人喜歡這種方式設(shè)置css,完全不用考慮全局的樣式問題

以上就是如何用react優(yōu)雅的書寫CSS的詳細(xì)內(nèi)容,更多關(guān)于react 書寫CSS的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 基于React的狀態(tài)管理實(shí)現(xiàn)一個(gè)簡單的顏色轉(zhuǎn)換器

    基于React的狀態(tài)管理實(shí)現(xiàn)一個(gè)簡單的顏色轉(zhuǎn)換器

    這篇文章主要介紹了用React的狀態(tài)管理,簡簡單單實(shí)現(xiàn)一個(gè)顏色轉(zhuǎn)換器,文中有詳細(xì)的代碼示例供大家參考,具有一定的參考價(jià)值,需要的朋友可以參考下
    2023-08-08
  • React Fiber源碼深入分析

    React Fiber源碼深入分析

    Fiber 可以理解為一個(gè)執(zhí)行單元,每次執(zhí)行完一個(gè)執(zhí)行單元,React Fiber就會(huì)檢查還剩多少時(shí)間,如果沒有時(shí)間則將控制權(quán)讓出去,然后由瀏覽器執(zhí)行渲染操作,這篇文章主要介紹了React Fiber架構(gòu)原理剖析,需要的朋友可以參考下
    2022-11-11
  • Native?Memory?Tracking追蹤區(qū)域示例分析

    Native?Memory?Tracking追蹤區(qū)域示例分析

    這篇文章主要為大家介紹了Native?Memory?Tracking追蹤區(qū)域示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • React SSR樣式及SEO的實(shí)踐

    React SSR樣式及SEO的實(shí)踐

    這篇文章主要介紹了React SSR樣式及SEO的實(shí)踐,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-10-10
  • 淺談箭頭函數(shù)寫法在ReactJs中的使用

    淺談箭頭函數(shù)寫法在ReactJs中的使用

    這篇文章主要介紹了淺談箭頭函數(shù)寫法在ReactJs中的使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • React拆分窗格組件的兩種方法

    React拆分窗格組件的兩種方法

    這篇文章主要介紹了React拆分窗格組件的兩種方法,使用第三方庫react-split-pane適用于快速實(shí)現(xiàn)拆分窗格功能,并且對(duì)功能和樣式的要求較為簡單的場景,本文結(jié)合示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • 詳解React Native與IOS端之間的交互

    詳解React Native與IOS端之間的交互

    React Native (簡稱RN)是Facebook于2015年4月開源的跨平臺(tái)移動(dòng)應(yīng)用開發(fā)框架,是Facebook早先開源的JS框架 React 在原生移動(dòng)應(yīng)用平臺(tái)的衍生產(chǎn)物,支持iOS和安卓兩大平臺(tái)。本文將介紹React Native與IOS端之間的交互。
    2021-06-06
  • 基于PixiJS實(shí)現(xiàn)react圖標(biāo)旋轉(zhuǎn)動(dòng)效

    基于PixiJS實(shí)現(xiàn)react圖標(biāo)旋轉(zhuǎn)動(dòng)效

    PixiJS是一個(gè)開源的基于web的渲染系統(tǒng),為游戲、數(shù)據(jù)可視化和其他圖形密集型項(xiàng)目提供了極快的性能,這篇文章主要介紹了用PixiJS實(shí)現(xiàn)react圖標(biāo)旋轉(zhuǎn)動(dòng)效,需要的朋友可以參考下
    2022-05-05
  • React 性能優(yōu)化之非必要的渲染問題解決

    React 性能優(yōu)化之非必要的渲染問題解決

    本文主要介紹了React 性能優(yōu)化之非必要的渲染問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • React中常見的動(dòng)畫實(shí)現(xiàn)的幾種方式

    React中常見的動(dòng)畫實(shí)現(xiàn)的幾種方式

    本篇文章主要介紹了React中常見的動(dòng)畫實(shí)現(xiàn)的幾種方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-01-01

最新評(píng)論

英山县| 江川县| 怀仁县| 江安县| 泰顺县| 龙泉市| 海安县| 西平县| 潞西市| 潞西市| 郯城县| 龙泉市| 锦屏县| 桂林市| 商水县| 溧阳市| 德清县| 平阳县| 鄱阳县| 澄江县| 都兰县| 于都县| 河池市| 峨山| 缙云县| 石阡县| 大洼县| 章丘市| 厦门市| 峡江县| 塔河县| 台州市| 紫云| 方山县| 霍林郭勒市| 登封市| 长顺县| 射洪县| 井研县| 绥棱县| 永城市|