2016-11-30 37 views
1

內ES和諧風格的一個劇本,我會分解爲不同組件不同風格的陣營如下面的代碼:我可以發佈我在ES和聲風格JavaScript中導入的內容嗎?

import React from 'react'; 

/** Modules */ 
import style from './main.css'; 

export class TableBody extends React.Component { 
    constructor(props) { 
    } 

    componentDidMount() { 
    } 

    componentWillUnmount() { 
     /** release style */ 
    } 
} 

而且有沒有什麼辦法來釋放我的方法componentWillUnmount前進口的風格,所以該組件的樣式不會影響其他組件?

在問這個問題之前,我嘗試了一些方法,例如使用delete或將它分配給一個null對象,但它們都不能工作。

+0

謝謝您的回答@AndreLee,但我不認爲這是通過增加哈希碼來解決它的好方法,因爲它可能會在類名失去其可讀性。當然,我可以選擇使用postcss作爲一個css管理工具來動態管理這個加載。 –

+0

哈希碼由加載程序添加,您不會失去可讀性。 CSS模塊的概念是爲了解決您的問題而設計的,它不污染其他類並保持可讀性。 –

+0

這不是一種解決方法。您可以檢查[本條](https://css-tricks.com/css-modules-part-3-react/)爲更多地瞭解CSS模塊。順便說一句,你可以看到我的webpack配置,我也使用預處理器postcss。 –

回答

3

如果您使用的是CSS moduleswebpack,那麼您在React組件中導入的每個CSS文件都可以添加一個前綴或您喜歡的其他格式。

的現實世界的例子會是這樣class="ChatListItem__unread___249Kw"

而且很難,除非你真的用在你的反應的組分ChatListItem__unread___249Kw以影響其他部件。 (該249Kw是一個散列碼,在生產環境中,你只可以通過配置保持它。)

配置爲CSS裝載機的WebPack配置

{ 
    test: /\.css$/, 
    loader: 'style!css?modules&importLoaders=1&' + 
    'localIdentName=[name]__[local]___[hash:base64:5]!postcss', 
    }, 

陣營組件&其CSS文件結構

React Component File Struc

你導入CSS文件的方式可以改寫

import React from 'react'; 

/** Modules */ 
import styles from './TableBody.css'; 

export class TableBody extends React.Component { 
    constructor(props) { 
    } 

    componentDidMount() { 
    } 

    componentWillUnmount() { 
     /** release style */ 
    } 

    render() { 
     return <div className={styles.theClassName}></div> 
    } 
} 
+0

好!我會在稍後嘗試,如果它有效,我會將您的答案標記爲已接受的答案。 –

+0

@PuiManCheui沒有問題,隨時詢問如果答案是不明確的給你。 –

相關問題