亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    CSS Modules是啥子?xùn)|西?一起來了解一下!

    CSS Modules是啥子?xùn)|西?一起來了解一下!

    今年四月份的時候面試了一家公司,

    技術(shù)面的時候被人家問到了CSS Module有了解過么,我說沒有了解過,

    他就繼續(xù)問到,那你在平時開發(fā)的時候給組件和元素起類名要怎么辦呢?
    我說給元素和組件加指定前綴,這樣就能夠保證自己寫的類名和其他同事寫的類名不會起沖突。

    然后就沒然后了,,后續(xù)又問了我很多React原理啥的面試就過了。

    今天我們就把CSS Modules是個啥子?xùn)|西給他弄明白,這樣會更加分。

    【推薦教程:CSS視頻教程 】

    首先我們來看一張圖:

    一張圖理解 CSS Modules 的工作原理:
    CSS Modules是啥子?xùn)|西?一起來了解一下!
    我們自己編碼的時候有倆個文件,一個是ProductList.less文件,一個是ProductList.jsx文件
    在構(gòu)建之后會將less文件轉(zhuǎn)換成藍(lán)色標(biāo)題的那個文件。

    可以由此看出:

    • button class在構(gòu)建之后會被重命名為ProductList_button_1FU0u。button是local name,而 ProductList_button_1FU0u 是 global name 。你可以用簡短的描述性名字,而不需要關(guān)心命名沖突問題。

    然后你要做的全部事情就是在 css/less 文件里寫 .button {…},并在組件里通過 styles.button 來引用他。

    定義全局CSS

    CSS Modules默認(rèn)是局部作用域的,想要聲名一個全局規(guī)則,可用:global語法。

    比如:

    .title { 	color: red; } :global(.title) { 	color: green; }

    在引用的時候:

    <App className={styles.title} /> // red <App className="title" />        // green
    classnames Package

    在一些復(fù)雜場景中,一個元素可能對應(yīng)多個className,而每個className又基于一些條件來決定是否出現(xiàn)。這時,classnames這個庫就非常有用。

    import classnames from 'classnames'; const App = (props) => { 	const cls = classnames({ 		btn: true, 		btnLarge: props.type === 'submit', 		btnSmall: props.type === 'edit', 	}); 	return <div className={ cls } />; }

    這樣,傳入不同的 type 給 App 組件,就會返回不同的 className 組合:

    <App type="submit" /> // btn btnLarge <App type="edit" />   // btn btnSmall

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號