這個挑戰最好用一個小例子說明:陣營和CSS模塊:如何風格組件而不承擔其內容
import React from 'react'
import styles from './styles.pcss'
const Spinner =() => (
<article className={styles.spinner}>
{/* <div> elements here*/}
</article>
)
export default Spinner
我想改變的微調器組件的位置,這必須是由微調的父母完成。我看到3個解決方案:
- 使用針對
<article>
標記(微調框的根元素)的CSS規則。我不喜歡這一點,因爲父母組件正在假設紡紗廠的內部結構。如果此標籤更改,則所有定位它的樣式都會打破。我必須能夠改變我的組件的內部結構,而不必擔心會破壞我的應用程序的許多區域。 將類名傳遞給微調組件。這是好得多,因爲沒有關於微調內部的假設。但是,由於潛在的每個組件都可以通過它們的父級(一個非常常見的CSS任務)來定位,那麼我就需要爲需要自定義樣式的每個組件實現傳遞的className(包括prop類型驗證等)。必須有更好的解決方案。
import React, { PropTypes } from 'react' import classNames from 'classnames' import styles from './styles.pcss' const Spinner = ({ className }) => ( <article className={classNames(styles.spinner, className)}> {/* <div> elements here*/} </article> ) Spinner.propTypes = { className: PropTypes.string } export default Spinner
使用含<DIV>組件周圍我要的風格:
<div className="spinner"><Spinner /></div>
但是這會導致臃腫的標記不必要<div>
S IN的情況下許多元素都必須風格(如設置他們的位置)。
您有哪些建議?
THX