国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

Styled-Components

ingood / 891人閱讀

摘要:它是通過(guò)改變編寫(xiě)方式的解決方案之一,從根本上解決常規(guī)編寫(xiě)的一些弊端。通過(guò)來(lái)為賦能,我們能達(dá)到常規(guī)所不好處理的邏輯復(fù)雜函數(shù)方法復(fù)用避免干擾。他搭配可能將模塊化走向一個(gè)更高的高度,樣式書(shū)寫(xiě)將直接依附在上面,三者再次內(nèi)聚。

Styled-Components
它是通過(guò)JavaScript改變CSS編寫(xiě)方式的解決方案之一,從根本上解決常規(guī)CSS編寫(xiě)的一些弊端。
通過(guò)JavaScript來(lái)為CSS賦能,我們能達(dá)到常規(guī)CSS所不好處理的邏輯復(fù)雜、函數(shù)方法、復(fù)用、避免干擾。
盡管像SASS、LESS這種預(yù)處理語(yǔ)言添加了很多用用的特性,但是他們依舊沒(méi)有對(duì)改變CSS的混亂有太大的幫助。因此組織工作交給了像 BEM這樣的方法,雖然比較有用,但是它完全是自選方案,不能被強(qiáng)制應(yīng)用在語(yǔ)言或者工具層面。
他搭配React可能將模塊化走向一個(gè)更高的高度,樣式書(shū)寫(xiě)將直接依附在JSX上面,HTML、CSS、JS三者再次內(nèi)聚。
基本 安裝
npm install --save styled-components

除了npm安裝使用模塊化加載包之外,也支持UMD格式直接加載腳本文件。

入門(mén)

styled-components使用標(biāo)簽?zāi)0鍋?lái)對(duì)組件進(jìn)行樣式化。

它移除了組件和樣式之間的映射。這意味著,當(dāng)你定義你的樣式時(shí),你實(shí)際上創(chuàng)造了一個(gè)正常的React組件,你的樣式也附在它上面。

這個(gè)例子創(chuàng)建了兩個(gè)簡(jiǎn)單的組件,一個(gè)容器和一個(gè)標(biāo)題,并附加了一些樣式。

// Create a Title component that"ll render an 

tag with some styles const Title = styled.h1` font-size: 1.5em; text-align: center; color: palevioletred; `; // Create a Wrapper component that"ll render a
tag with some styles const Wrapper = styled.section` padding: 4em; background: papayawhip; `; // Use Title and Wrapper like any other React component – except they"re styled! render( Hello World, this is my first styled component! );

注意
CSS規(guī)則會(huì)自動(dòng)添加瀏覽器廠商前綴,我們不必考慮它。
透?jìng)鱬rops

styled-components會(huì)透?jìng)魉械膒rops屬性。

// Create an Input component that"ll render an  tag with some styles
const Input = styled.input`
  padding: 0.5em;
  margin: 0.5em;
  color: palevioletred;
  background: papayawhip;
  border: none;
  border-radius: 3px;
`;

// Render a styled text input with a placeholder of "@mxstbr", and one with a value of "@geelen"
render(
  
);
基于props做樣式判斷

模板標(biāo)簽的函數(shù)插值能拿到樣式組件的props,可以據(jù)此調(diào)整我們的樣式規(guī)則。

const Button = styled.button`
  /* Adapt the colours based on primary prop */
  background: ${props => props.primary ? "palevioletred" : "white"};
  color: ${props => props.primary ? "white" : "palevioletred"};

  font-size: 1em;
  margin: 1em;
  padding: 0.25em 1em;
  border: 2px solid palevioletred;
  border-radius: 3px;
`;

render(
  
);
樣式化任意組件
// This could be react-router"s Link for example
const Link = ({ className, children }) => (
  
    {children}
  
)

const StyledLink = styled(Link)`
  color: palevioletred;
  font-weight: bold;
`;

render(
  
Unstyled, boring Link
Styled, exciting Link
);
擴(kuò)展樣式

我們有時(shí)候需要在我們的樣式組件上做一點(diǎn)擴(kuò)展,添加一些額外的樣式:
需要注意的是.extend在對(duì)樣式組件有效,如果是其他的React組件,需要用styled樣式化一下。

// The Button from the last section without the interpolations
const Button = styled.button`
  color: palevioletred;
  font-size: 1em;
  margin: 1em;
  padding: 0.25em 1em;
  border: 2px solid palevioletred;
  border-radius: 3px;
`;

// We"re extending Button with some extra styles
const TomatoButton = Button.extend`
  color: tomato;
  border-color: tomato;
`;

render(
  
Tomato Button
);

在極少特殊情況下,我們可能需要更改樣式組件的標(biāo)簽類(lèi)型。我們有一個(gè)特別的API,withComponent可以擴(kuò)展樣式和替換標(biāo)簽:

const Button = styled.button`
  display: inline-block;
  color: palevioletred;
  font-size: 1em;
  margin: 1em;
  padding: 0.25em 1em;
  border: 2px solid palevioletred;
  border-radius: 3px;
`;

// We"re replacing the 
    Normal Link
    Tomato Link
  
); 添加attr

我們可以使用attrsAPI來(lái)為樣式組件添加一些attr屬性,它們也可以通過(guò)標(biāo)簽?zāi)0宀逯岛瘮?shù)拿到props傳值。

const Input = styled.input.attrs({
  // we can define static props
  type: "password",

  // or we can define dynamic ones
  margin: props => props.size || "1em",
  padding: props => props.size || "1em"
})`
  color: palevioletred;
  font-size: 1em;
  border: 2px solid palevioletred;
  border-radius: 3px;

  /* here we use the dynamically computed props */
  margin: ${props => props.margin};
  padding: ${props => props.padding};
`;

render(
  

);
動(dòng)畫(huà)

帶有@keyframes的CSS animations,一般來(lái)說(shuō)會(huì)產(chǎn)生復(fù)用。styled-components暴露了一個(gè)keyframes的API,我們使用它產(chǎn)生一個(gè)可以復(fù)用的變量。這樣,我們?cè)跁?shū)寫(xiě)css樣式的時(shí)候使用JavaScript的功能,為CSS附能,并且避免了名稱(chēng)沖突。

// keyframes returns a unique name based on a hash of the contents of the keyframes
const rotate360 = keyframes`
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
`;

// Here we create a component that will rotate everything we pass in over two seconds
const Rotate = styled.div`
  display: inline-block;
  animation: ${rotate360} 2s linear infinite;
  padding: 2rem 1rem;
  font-size: 1.2rem;
`;

render(
  <            
               
                                           
                       
                 

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/113197.html

相關(guān)文章

  • styled-components 中文文檔翻譯及不完全指北

    摘要:前言官方文檔地址中文文檔地址是一個(gè)的第三方庫(kù),是的優(yōu)秀實(shí)踐。初次了解是在讀林昊翻譯的設(shè)計(jì)模式與最佳實(shí)踐一書(shū)時(shí)。能力所限,已翻譯部分可能仍有字詞錯(cuò)誤或語(yǔ)句不通順的地方,歡迎有能力的同學(xué)幫助糾正。就是其中的佼佼者。 前言 官方文檔地址: https://www.styled-components.com/ 中文文檔地址:https://github.com/hengg/styled-com...

    Vicky 評(píng)論0 收藏0
  • styled-components 中文文檔翻譯及不完全指北

    摘要:前言官方文檔地址中文文檔地址是一個(gè)的第三方庫(kù),是的優(yōu)秀實(shí)踐。初次了解是在讀林昊翻譯的設(shè)計(jì)模式與最佳實(shí)踐一書(shū)時(shí)。能力所限,已翻譯部分可能仍有字詞錯(cuò)誤或語(yǔ)句不通順的地方,歡迎有能力的同學(xué)幫助糾正。就是其中的佼佼者。 前言 官方文檔地址: https://www.styled-components.com/ 中文文檔地址:https://github.com/hengg/styled-com...

    OnlyLing 評(píng)論0 收藏0
  • 五分鐘 Styled-components 高級(jí)實(shí)用技巧

    摘要:甚至完美的結(jié)合,不僅是從上,還有上。開(kāi)胃菜用了語(yǔ)法,直接為我們編寫(xiě)樣式創(chuàng)建組件。其實(shí)組件繼承也算是覆蓋的一種。如下當(dāng)任何父級(jí)帶有都會(huì)覆蓋的樣式。在上面可以看見(jiàn)我們大量使用了作為選擇器,而還有另外的技巧。 寫(xiě)在前面的廢話 回到2013年,React憑空出世。但是在那時(shí),我們會(huì)想,oh shit! 我們好不容易分離了HTML/CSS/JS, 為什么出現(xiàn)了JSX,我們又需要把HTML和JS耦...

    Profeel 評(píng)論0 收藏0
  • 五分鐘 Styled-components 高級(jí)實(shí)用技巧

    摘要:甚至完美的結(jié)合,不僅是從上,還有上。開(kāi)胃菜用了語(yǔ)法,直接為我們編寫(xiě)樣式創(chuàng)建組件。其實(shí)組件繼承也算是覆蓋的一種。如下當(dāng)任何父級(jí)帶有都會(huì)覆蓋的樣式。在上面可以看見(jiàn)我們大量使用了作為選擇器,而還有另外的技巧。 寫(xiě)在前面的廢話 回到2013年,React憑空出世。但是在那時(shí),我們會(huì)想,oh shit! 我們好不容易分離了HTML/CSS/JS, 為什么出現(xiàn)了JSX,我們又需要把HTML和JS耦...

    DevYK 評(píng)論0 收藏0
  • 從零到一 styled-components 4.x 的使用

    摘要:廢話不多話,來(lái)上車(chē)安裝或者簡(jiǎn)述使用創(chuàng)建全局的樣式首先創(chuàng)建一個(gè)文件,例如引全局包里面為項(xiàng)目需要的內(nèi)容在組件內(nèi)把引入的當(dāng)做標(biāo)簽寫(xiě)入創(chuàng)建一個(gè)局部的樣式引局部包里面為項(xiàng)目需要的內(nèi)容在組件內(nèi)把引入的當(dāng)做標(biāo)簽寫(xiě)入類(lèi)嵌套類(lèi)似于用法大同小異列舉 廢話不多話,來(lái)上車(chē)! 安裝: npm install --save styled-components (或者 yarn add styled-com...

    Yuqi 評(píng)論0 收藏0
  • React中使用外部樣式的3中方式

    摘要:一關(guān)于的認(rèn)識(shí)是一種使用編寫(xiě)樣式的處理方案。意味著你不需要關(guān)心如何檢測(cè)和刪除那些未使用的代碼。支持變量和繼承你可以使用變量來(lái)設(shè)置不同的樣式,使用這些不同樣式時(shí)只需要給樣式組件傳遞一個(gè)參數(shù)即可。 一、關(guān)于css-in-js的認(rèn)識(shí) 1、css-in-js是一種使用 js 編寫(xiě) css 樣式的 css 處理方案。它的實(shí)現(xiàn)方案有很多,比如styled-components、polished、glam...

    vboy1010 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<