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

React中styled-components的使用

 更新時(shí)間:2022年04月22日 10:56:26   作者:YaaLee_  
styled-components 樣式化組件,主要作用是它可以編寫實(shí)際的CSS代碼來設(shè)計(jì)組件樣式,本文主要介紹了React中styled-components的使用,具有一定的參考價(jià)值,感興趣的可以了解一下

一、官網(wǎng)地址

https://www.styled-components.com/

二、styled-components

  1、styled-components 樣式化組件,主要作用是它可以編寫實(shí)際的CSS代碼來設(shè)計(jì)組件樣式,也不需要組件和樣式之間的映射,即創(chuàng)建后就是一個(gè)正常的React 組件,

  并且可以附加樣式給當(dāng)前組件。 優(yōu)化react組件

  2、在一個(gè)組件內(nèi)會將結(jié)構(gòu)、樣式和邏輯寫在一起,雖然這違背了關(guān)注點(diǎn)分離的原則,但是這有利于組件間的隔離。為了順應(yīng)組件化的潮流

  3、使用styled-components不需要再使用className屬性來控制樣式,而是將樣式寫成更具語義化的組件的形式

  4、使用style-components會隨機(jī)生成一個(gè)class名稱,這樣不會污染到全局變量,當(dāng)然因?yàn)殡S機(jī)生成,維護(hù)會增加難度

三、基本使用

1、安裝

cnpm i styled-components -S    ||    yarn add styled-components

2、引入

import styled from "styled-components";

3、使用

export const Header = styled.div`
  width:100%;
  height:1rem;
  background:red      
`

import {Header} from "./style/index";
class App extends Component{
  render(){
    return (
      <Header/>
    )
  }
}

四、全局默認(rèn)樣式引入

引入新的API createGlobalStyle ,在下面創(chuàng)建一個(gè) GlobalStyle 變量,用 createGlobalStyle 方法把全局樣式包裹在其中

import { createGlobalStyle } from "styled-components";
export const GlobalStyle = createGlobalStyle`
html, body, ul, li, ol, dl, dd, dt, p, h1, h2, h3, h4, h5, h6, form, fieldset, legend, img { margin:0; padding:0; }

fieldset, c{ border:none; }

img{display: block;}

address, caption, cite, code, dfn, th, var { font-style:normal; font-weight:normal; }

ul, ol ,li{ list-style:none; }

body { color:#333; font:12px BASE "SimSun","宋體","Arial Narrow",HELVETICA; background:#fff;}

a { color:#666; text-decoration:none; }

*{box-sizing:border-box}

body,html,#root{
    height: 100%;
    overflow: hidden;
}
//將 <GlobalStyle /> 組件放在 render() 中最外層元素下面

import React, { Component ,Fragment} from 'react';
import {GlobalStyle} from "./reset";
class App extends Component {
  render() {
    return (
      <Fragment>
        <GlobalStyle/>
      </Fragment>
    );
  }
}

export default App;

五、傳參

 如果我們需要動態(tài)改變元素的樣式,則可以通過傳遞參數(shù)的方式進(jìn)行改變

import {Header} from "style/index.js"

render(){
  return (
        <Header bgColor="red"/>  
    )  
}

style/index.js

import styled from "styled-components";
export const Header = styled.div`
  width:100px;
  height:200px;
  props.bgColor}

六、繼承

  如果我們需要繼承樣式的時(shí)候我們可以通過 styled(繼承的組件名稱)``

const button = styled.button`
  border:0;
  width:100px;
  height:40px;
  text-align:center;
  color:#000;      
`

export const StyledButton = styled(button)`
  color:#fff;  
`

七、修改組件內(nèi)部標(biāo)簽

在調(diào)用組件的時(shí)候我們可以通過as來修改組件 as="元素名稱"

render(){
  return (
    <Header as="p"/>
  )  
}    

Header組件內(nèi)部渲染的時(shí)候就是用的p標(biāo)簽

八、定義組件屬性

export const Input = styled.input.attrs({
    value:(props)=>props.value,
    name:"input"
})`
  border:0;
  width:100px;
  height:100px;
`

九、背景圖片引入

import logo from "./imgs/logo.png";

export const BgLogo =  styled.div`
  width:100px;
  height:200px;
  background:url(${logo}) no-repate;  
`

十、塑造組件

有一種情況,一些原本就已經(jīng)是組件,需要給這些組件添加樣式,這時(shí)需要用到塑造組件

import React from "react";
import styled from "styled-components";

const Link = ({className,children})=>(
        <a className={className}>
             {children}
         </a>   
)    
export StyleLink = styled(Link)`
  color:red  
`

十一、動畫```javascript

const move = keyframes`
  0%{
         transform:rotate(0%);  
   }  
  100%{
     transform :rotate(100%);

  }
`
export const TransFormDiv = styled.div`
   width:100px;
   height:100px;
   background:red;
   animation:${move} 2s;
`

十二、當(dāng)標(biāo)簽過多時(shí)需要劃分太多組件,我們可以通過以下寫法來簡化組件的編寫

&代表父級

export const StyledUl = styled.ul`
    border:1px solid #ccc;
    >li{
         border-bottom:1px solid #green;
         line-height:30px;
         padding-left:20px;      
        &>p{
            color:red

         }
    }  

到此這篇關(guān)于React中styled-components的使用的文章就介紹到這了,更多相關(guān)React styled-components內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • React API集成與路由的最佳實(shí)踐

    React API集成與路由的最佳實(shí)踐

    本文給大家介紹了React API集成與路由的最佳實(shí)踐,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2026-02-02
  • React?Hooks之useDeferredValue鉤子用法示例詳解

    React?Hooks之useDeferredValue鉤子用法示例詳解

    useDeferredValue鉤子的主要目的是在React的并發(fā)模式中提供更流暢的用戶體驗(yàn),特別是在有高優(yōu)先級和低優(yōu)先級更新的情況下,本文主要講解一些常見的使用場景及其示例
    2023-09-09
  • Vite?+?React從零開始搭建一個(gè)開源組件庫

    Vite?+?React從零開始搭建一個(gè)開源組件庫

    這篇文章主要介紹了Vite?+?React?如何從0到1搭建一個(gè)開源組件庫,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • useEffect支持async及await使用方式

    useEffect支持async及await使用方式

    這篇文章主要為大家介紹了useEffect支持async及await的使用方式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • 詳解React中父子組件數(shù)據(jù)傳遞和修改的方式及原理

    詳解React中父子組件數(shù)據(jù)傳遞和修改的方式及原理

    這篇文章主要為大家詳細(xì)介紹了React中父子組件數(shù)據(jù)傳遞和修改的方式及原理,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-04-04
  • 一文學(xué)會使用Remix寫API接口

    一文學(xué)會使用Remix寫API接口

    這篇文章主要為大家介紹了一文學(xué)會Remix寫API接口實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • 詳解使用create-react-app添加css modules、sasss和antd

    詳解使用create-react-app添加css modules、sasss和antd

    這篇文章主要介紹了詳解使用create-react-app添加css modules、sasss和antd,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • 淺談react-router@4.0 使用方法和源碼分析

    淺談react-router@4.0 使用方法和源碼分析

    這篇文章主要介紹了淺談react-router@4.0 使用方法和源碼分析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-06-06
  • 詳解react hooks組件間的傳值方式(使用ts)

    詳解react hooks組件間的傳值方式(使用ts)

    本文主要介紹了react hooks組件間的傳值方式(使用ts),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • React實(shí)現(xiàn)前端選區(qū)的示例代碼

    React實(shí)現(xiàn)前端選區(qū)的示例代碼

    本文主要介紹了React實(shí)現(xiàn)前端選區(qū)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05

最新評論

张家川| 枞阳县| 吴江市| 张家港市| 门源| 恭城| 招远市| 莒南县| 高州市| 寿宁县| 保康县| 山东省| 延寿县| 乐昌市| 民权县| 平顶山市| 浦江县| 樟树市| 牙克石市| 博客| 洛扎县| 汨罗市| 霍山县| 宝坻区| 屯昌县| 郓城县| 海安县| 六安市| 铜川市| 诸暨市| 易门县| 通山县| 吐鲁番市| 临桂县| 泾源县| 淮安市| 尤溪县| 昌都县| 长治市| 衡水市| 白城市|