91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

React中styled-components怎么使用

發布時間:2022-04-22 13:42:47 來源:億速云 閱讀:211 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“React中styled-components怎么使用”,內容詳細,步驟清晰,細節處理妥當,希望這篇“React中styled-components怎么使用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

styled-components

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

  并且可以附加樣式給當前組件。 優化react組件

  2、在一個組件內會將結構、樣式和邏輯寫在一起,雖然這違背了關注點分離的原則,但是這有利于組件間的隔離。為了順應組件化的潮流

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

  4、使用style-components會隨機生成一個class名稱,這樣不會污染到全局變量,當然因為隨機生成,維護會增加難度

基本使用

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/>
    )
  }
}

全局默認樣式引入

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

import { createGlobalStyle } from "styled-components";
export const GlobalStyle = createGlobalStyle`
html, body, ul, li, ol, dl, dd, dt, p, h2, h3, h4, h5, h6, h7, 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;

傳參

 如果我們需要動態改變元素的樣式,則可以通過傳遞參數的方式進行改變

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}

繼承

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

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

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

修改組件內部標簽

在調用組件的時候我們可以通過as來修改組件 as="元素名稱"

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

Header組件內部渲染的時候就是用的p標簽

定義組件屬性

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;  
`

塑造組件

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

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;
`

當標簽過多時需要劃分太多組件,我們可以通過以下寫法來簡化組件的編寫

&代表父級

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

         }
    }

讀到這里,這篇“React中styled-components怎么使用”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

北京市| 育儿| 衡南县| 芮城县| 牟定县| 宝山区| 新巴尔虎右旗| 无锡市| 乐东| 武城县| 鲜城| 望都县| 株洲县| 太谷县| 定安县| 南昌市| 红原县| 宣武区| 双城市| 漳浦县| 布拖县| 乌鲁木齐市| 调兵山市| 钟山县| 德格县| 江川县| 巴中市| 惠州市| 会昌县| 舒城县| 乐清市| 泽州县| 高阳县| 普格县| 安义县| 乌什县| 安丘市| 巴彦县| 长葛市| 承德县| 龙游县|