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

react四種組件中DOM樣式設(shè)置方式詳解

 更新時間:2021年10月11日 14:48:06   作者:久宇詩  
這篇文章主要介紹了react之四種組件中DOM樣式設(shè)置方式,通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

1、行內(nèi)樣式

想給虛擬dom添加行內(nèi)樣式,需要使用表達(dá)式傳入樣式對象的方式來實(shí)現(xiàn)
行內(nèi)樣式需要寫入一個樣式對象,而這個樣式對象的位置可以放在很多地方
例如:render函數(shù)里、組件原型上、外鏈js文件中
注意:這里的兩個括號,第一個表示我們在要JSX里插入JS了,第二個是對象的括號

 <p style={{color:'red', fontSize:'14px'}}>Hello world</p>

2、使用class

React推薦我們使用行內(nèi)樣式,因?yàn)镽eact覺得每一個組件都是一個獨(dú)立的整體

其實(shí)我們大多數(shù)情況下還是大量的在為元素添加類名,但是需要注意的是,class需要寫成className(因?yàn)楫吘故窃趯戭恓s代碼,會收到j(luò)s規(guī)則的現(xiàn)在,而class是關(guān)鍵字)

import React, { Component } from 'react'
1. 外部引入定義的樣式
import styles from './style.css'

class ClassStyle extends Component {
  render() {
    // js邏輯
    let className = cx({
      font: false
    })
    return (
      <>
        <div className={className}>hello</div>
        <p className='setstyle'>樣式</p>
        <DivContainer>
          world
        </DivContainer>
      <>
    )
  }
}

export default ClassStyle

3、classNames不同的條件添加不同的樣式

有時候需要根據(jù)不同的條件添加不同的樣式,比如:完成狀態(tài),完成是綠色,未完成是紅色。那么這種情況下,我們推薦使用classnames這個包:
目的:
由于react原生動態(tài)添加多個className會報錯

import style from './style.css'
<div className={style.class1 style.class2}</div>

想要得到最終渲染的效果是:

<div class='class1 class2'></div>

下載安裝

npm i -S classnames

使用

import classnames from 'classnames'
<div className=classnames({
    'class1': true,
    'class2': true
    )>
</div>

4、css-in-js

styled-components是針對React寫的一套css-in-js框架,簡單來講就是在js中寫css。npm鏈接

  • 傳統(tǒng)的前端方案推崇"關(guān)注點(diǎn)分離"原則,HTML、CSS、JavaScript 應(yīng)該各司其職,進(jìn)行分離。
  • 而在react項目中,更提倡組件化方案,自然形成了將HTML、CSS、JavaScript集中編寫管理的方式。

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

1.安裝

npm i -S styled-components

定義樣式
2.樣式j(luò)s文件

import styled from 'styled-components'
const Title = styled.div`
    color:red;
    font-size:16px;
    h3{
        color:blue;
        font-size:20px;
    }
`
export {
    Title
}

顯示
就像使用常規(guī) React 組件一樣使用 Title

import React, { Component } from 'react'
import { Title } from './Styles'
class App extends Component {
render() {
    return (
        <div>
            <Title>
            我只是一個標(biāo)題
            <h3>你好世界</h3>
            </Title>
        </div >
        );
    }
}
export default App

3.樣式繼承
樣式

import styled from 'styled-components'
const Button = styled.button`
    font-size: 20px;
    border: 1px solid red;
    border-radius: 3px;
`;

// 一個繼承 Button 的新組件, 重載了一部分樣式
const Button2 = styled(Button)`
    color: blue;
    border-color: yellow;
`;

export {
    Button,
    Button2
}

顯示

import React, { Component } from 'react'
import {
Button,
Button2
} from './Styles'
class App extends Component {
render() {
    return (
    <div>
        <Button>我是一個按鈕1</Button>
        <Button2>我是一個按鈕2</Button2>
    </div >
    );
}
}
export default App

4.屬性傳遞
樣式

import styled from 'styled-components'
const Input = styled.input`
    color: ${props => props.inputColor || "blue"};
    border-radius: 3px;
`;
export {
    Input
}

 

顯示

import React, { Component } from 'react'
import { Input } from './Styles'
class App extends Component {
render() {
    return (
    <div>
        <Input defaultValue="你好" inputColor="red"></Input>
    </div >
    );
}
}
export default App

到此這篇關(guān)于react之四種組件中DOM樣式設(shè)置方式的文章就介紹到這了,更多相關(guān)react組件DOM樣式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • react合成事件與原生事件的相關(guān)理解

    react合成事件與原生事件的相關(guān)理解

    本文主要介紹了react合成事件與原生事件的相關(guān)概念,幫助大家區(qū)分這兩種事件,學(xué)習(xí)react的同學(xué)不妨了解下
    2021-05-05
  • ReactJS?應(yīng)用兼容ios9對標(biāo)ie11解決方案

    ReactJS?應(yīng)用兼容ios9對標(biāo)ie11解決方案

    這篇文章主要為大家介紹了ReactJS?應(yīng)用兼容ios9對標(biāo)ie11解決方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • react中實(shí)現(xiàn)搜索結(jié)果中關(guān)鍵詞高亮顯示

    react中實(shí)現(xiàn)搜索結(jié)果中關(guān)鍵詞高亮顯示

    這篇文章主要介紹了react中實(shí)現(xiàn)搜索結(jié)果中關(guān)鍵詞高亮顯示,使用react實(shí)現(xiàn)要比js簡單很多,方法都是大同小異,具體實(shí)現(xiàn)代碼大家跟隨腳本之家小編一起看看吧
    2018-07-07
  • React之如何在Suspense中優(yōu)雅地請求數(shù)據(jù)

    React之如何在Suspense中優(yōu)雅地請求數(shù)據(jù)

    Suspense 是 React 中的一個組件,直譯過來有懸掛的意思,能夠?qū)⑵浒漠惒浇M件掛起,直到組件加載完成后再渲染,本文詳細(xì)介紹了如何在Suspense中請求數(shù)據(jù),感興趣的小伙伴可以參考閱讀本文
    2023-04-04
  • 使用React+SpringBoot開發(fā)一個協(xié)同編輯的表格文檔實(shí)現(xiàn)步驟

    使用React+SpringBoot開發(fā)一個協(xié)同編輯的表格文檔實(shí)現(xiàn)步驟

    隨著云計算和團(tuán)隊協(xié)作的興起,協(xié)同編輯成為了許多企業(yè)和組織中必不可少的需求,本文小編就將為大家介紹如何使用React+SpringBoot簡單的開發(fā)一個協(xié)同編輯的表格文檔,感興趣的朋友一起看看吧
    2023-11-11
  • 淺談React Native Flexbox布局(小結(jié))

    淺談React Native Flexbox布局(小結(jié))

    這篇文章主要介紹了淺談React Native Flexbox布局(小結(jié)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • jenkins分環(huán)境部署vue/react項目的方法步驟

    jenkins分環(huán)境部署vue/react項目的方法步驟

    這篇文章主要介紹了jenkins分環(huán)境部署vue/react項目的方法,本文分步驟給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • react國際化化插件react-i18n-auto使用詳解

    react國際化化插件react-i18n-auto使用詳解

    這篇文章主要介紹了react國際化化插件react-i18n-auto使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 解決React報錯Unexpected default export of anonymous function

    解決React報錯Unexpected default export of an

    這篇文章主要為大家介紹了React報錯Unexpected default export of anonymous function解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • React?路由使用示例詳解

    React?路由使用示例詳解

    這篇文章主要介紹了React?路由使用,使用路由時需要為組件指定一個路由的path,最終會以path為基礎(chǔ),進(jìn)行頁面的跳轉(zhuǎn),具體使用先看個簡單示例,該示例比較簡單就是兩個Tab頁面的來回切換
    2022-05-05

最新評論

津市市| 肇东市| 苍山县| 承德市| 上饶县| 尖扎县| 克什克腾旗| 秦皇岛市| 镇坪县| 阜康市| 兰坪| 金秀| 沙雅县| 裕民县| 永寿县| 环江| 墨竹工卡县| 乌拉特中旗| 鹤庆县| 扶余县| 富阳市| 固原市| 新丰县| 密山市| 观塘区| 通山县| 松阳县| 文安县| 衡东县| 海淀区| 六盘水市| 湘潭县| 金山区| 营口市| 贵阳市| 秦皇岛市| 景东| 江陵县| 循化| 随州市| 西盟|