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

React中使用外部樣式的3種方式(小結(jié))

 更新時間:2019年05月28日 09:36:05   作者:水痕001  
這篇文章主要介紹了React中使用外部樣式的3種方式(小結(jié)),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

一、關(guān)于css-in-js的認識

1、css-in-js是一種使用 js 編寫 css 樣式的 css 處理方案。它的實現(xiàn)方案有很多,比如styled-components、polished、glamorous(paypal 開源的,不再維護)、radium、emotion等等。

2、其中最成熟的便是styled-components和emotion。它們真正意義上實現(xiàn)了組件化style,可以說是專門為 react 打造的。

二、styled-components 簡介

styled-components是 css-in-js 主流的實現(xiàn)方案,同時也是組件化style的主流實現(xiàn)方案。

下面是styled-components的一些特性:

1、唯一class類名:和 css-module 異曲同工,生成唯一類名,避免重復和全局污染,也不需要你費腦筋思考該如何命名。

2、無冗余css代碼:它的樣式和組件綁定,組件調(diào)用則樣式起作用。意味著你不需要關(guān)心如何檢測和刪除那些未使用的 css 代碼。

3、動態(tài)樣式: 它可以很簡單地調(diào)整和拓展組件的樣式,而不需要建立很多個 class 類來維護組件的樣式。

4、自動添加兼容前綴:和 Autoprefixer 類似,會自動添加瀏覽器兼容前綴以支持舊版瀏覽器。

5、支持變量和繼承:你可以使用變量來設(shè)置不同的樣式,使用這些不同樣式時只需要給樣式組件傳遞一個參數(shù)即可。

三、styled-components使用方式

1、安裝

npm install styled-components

2、使用

styled-components主要基于 es6 的標簽模板語法調(diào)用標簽函數(shù)

import React, { Component } from 'react'
import styled from 'styled-components'

export default class Style extends Component {
 render() {
  return (
   <>
    <div>
     <Title>我是標題</Title>
    </div>
   </>
  )
 }
}

// 使用es6的模板字符串的方式(下面表示定義了h1的樣式)
const Title = styled.h1`
 font-size: 20px;
 color: #f00;

3、嵌套的使用

import React, { Component } from 'react'
import styled from 'styled-components'

export default class Style extends Component {
 render() {
  return (
   <>
    <div>
     <Content>
      <h2>你好</h2>
      <div className="content">我是內(nèi)容</div>
     </Content>
    </div>
   </>
  )
 }
}

const Content = styled.div`
 width: 100%;
 height: 500px;
 border: 1px solid #f00;
 > h2 {
  color: pink;
 }
 > .content {
  text-align: center;
  color: #f00;
 }
`

4、使用props傳遞參數(shù)的方式

import React, { Component } from 'react'
import styled, { css } from 'styled-components'

export default class Style2 extends Component {
 render() {
  return (
   <div>
    <Button> 提交 </Button>
    <Button primary> 提交 </Button>
   </div>
  )
 }
}

const Button = styled.button`
 font-size: 1em;
 margin: 1em;
 padding: 0.25em 1em;
 border-radius: 5px;
 color: palevioletred;
 border: 2px solid palevioletred;
 cursor: pointer;

 ${props =>
  props.primary &&
  css`
   border: 2px solid mediumseagreen;
   color: mediumseagreen;
  `}
`

5、樣式的繼承

import React, { Component } from 'react'
import styled from 'styled-components'

export default class Style3 extends Component {
 render() {
  return (
   <div>
    <Button> 提交 </Button>
    <ExtendingButton> 提交 </ExtendingButton>
   </div>
  )
 }
}

const Button = styled.button`
 background: palevioletred;
 color: white;
`

const ExtendingButton = styled(Button)`
 font-size: 18px;
 padding: 5px 25px;
`

四、使用sass

使用create-react-app創(chuàng)建的項目是支持sass的但是需要自己安裝

1、安裝

npm install node-sass

2、直接使用

import React, { Component } from 'react'
import './style4.scss'

export default class Style4 extends Component {
 render() {
  return (
   <div>
    <div className="title">我是標題</div>
   </div>
  )
 }
}

五、使用css-module

使用create-react-app創(chuàng)建的項目,默認情況下就支持css-module

1、樣式文件必須以[name].module.css或[name].module.scss的形式命名

2、以變量的形式導入樣式文件,比如 import styles from './style.module.css';

3、className以變量引用的方式添加,比如 className={ styles.title }

import React, { Component } from 'react'
import styles from './Style5.module.scss'

export default class Style5 extends Component {
 render() {
  return (
   <div>
    <div className={styles.title}>我是標題</div>
   </div>
  )
 }
}
<div class="Style5_title__lsl4D"></div>

4、如果不想使用默認的哈希值

:global(.wrap) {
 color: green;
}
// 直接使用
<h2 className="wrap">你好</h2>

5、樣式的繼承

.className {
 color: green;
 background: red;
}

.otherClassName {
 composes: className; // 直接繼承上面的
 color: yellow;
}

.title {
 composes: className from './another.css'; // 直接使用外部樣式表
 color: red;
}

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • react:swr接口緩存案例代碼

    react:swr接口緩存案例代碼

    useSWR 是一個 React Hooks,是 HTTP 緩存庫 SWR 的核心方法之一,SWR 是一個輕量級的 React Hooks 庫,通過自動緩存數(shù)據(jù)來實現(xiàn) React 的數(shù)據(jù)獲取,本文給大家介紹react:swr接口緩存案例詳解,感興趣的朋友一起看看吧
    2023-11-11
  • 一文帶你了解React中的并發(fā)機制

    一文帶你了解React中的并發(fā)機制

    React 18.2.0 引入了一系列并發(fā)機制的新特性,旨在幫助各位開發(fā)者更好地控制和優(yōu)化應用程序的性能和用戶體驗,下面我們就來看看如何利用這些新特性構(gòu)建更高效、更響應式的應用程序吧
    2024-03-03
  • React開發(fā)進階redux saga使用原理詳解

    React開發(fā)進階redux saga使用原理詳解

    這篇文章主要為大家介紹了React開發(fā)進階redux saga使用原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • React控制元素顯示隱藏的三種方法小結(jié)

    React控制元素顯示隱藏的三種方法小結(jié)

    這篇文章主要介紹了React控制元素顯示隱藏的三種方法小結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Header組件熱門搜索欄的實現(xiàn)示例

    Header組件熱門搜索欄的實現(xiàn)示例

    這篇文章主要為大家介紹了Header組件熱門搜索欄的實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • react-redux中connect的裝飾器用法@connect詳解

    react-redux中connect的裝飾器用法@connect詳解

    這篇文章主要介紹了react-redux中connect的裝飾器用法@connect詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • 基于Webpack5 Module Federation的業(yè)務(wù)解耦實踐示例

    基于Webpack5 Module Federation的業(yè)務(wù)解耦實踐示例

    這篇文章主要為大家介紹了基于Webpack5 Module Federation的業(yè)務(wù)解耦實踐示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • 詳解如何在react中搭建d3力導向圖

    詳解如何在react中搭建d3力導向圖

    本篇文章主要介紹了如何在react中搭建d3力導向圖,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • React中Portals與錯誤邊界處理實現(xiàn)

    React中Portals與錯誤邊界處理實現(xiàn)

    本文主要介紹了React中Portals與錯誤邊界處理實現(xiàn),文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧
    2021-07-07
  • React?Hook中的useState函數(shù)的詳細解析

    React?Hook中的useState函數(shù)的詳細解析

    Hook 就是 JavaScript 函數(shù),這個函數(shù)可以幫助你鉤入(hook into) React State以及生命周期等特性,這篇文章主要介紹了React?Hook?useState函數(shù)的詳細解析的相關(guān)資料,需要的朋友可以參考下
    2022-10-10

最新評論

文山县| 洮南市| 龙山县| 吴川市| 清镇市| 青浦区| 阿克陶县| 麻阳| 吉木乃县| 鹰潭市| 南汇区| 宜兴市| 新蔡县| 法库县| 定边县| 开原市| 汉川市| 肃北| 大安市| 五华县| 崇信县| 杭锦后旗| 富裕县| 邹城市| 刚察县| 手机| 福建省| 桐梓县| 临海市| 信丰县| 明溪县| 永济市| 龙胜| 鲁山县| 迁西县| 大同县| 双江| 赤壁市| 含山县| 寿光市| 曲水县|