2016-11-23 11 views
0

私は基本的に見せかけ<h1>あるこの超簡単な'Heading'コンポーネントを、持っていますインライン・スタイリングに反応する、悪いこと? 「反応」からリアクト</p> <p>インポート;:例えば

class Heading extends React.Component { 

    render() { 

     const style = { 
      'color' : 'red' 
     }; 

     return (
      <h1 className='heading' style={style}> 
       {this.props.title} 
      </h1> 
     ); 
    } 
} 

export default Heading; 

これはDOMでこのように見えるように出てレンダリング:

<h1 class="heading" style="color: red;">Heading</h1> 

優秀な、格好良いです。ページにこれらのコンポーネントがたくさんある場合は、次のようになります。

<h1 class="heading" style="color: red;">Heading</h1> 
<h1 class="heading" style="color: red;">Heading</h1> 
<h1 class="heading" style="color: red;">Heading</h1> 
<h1 class="heading" style="color: red;">Heading</h1> 

スタイル属性が何度も繰り返されていることに注目してください。これは私の質問です、これは悪いことですか?それは問題ですか?私が知ることは、サーバーからプレレンダーされたこのhtmlページをダウンロードしていないため、悪いことではないということです。だから、それらの繰り返しスタイルはすべて、より大きなファイルサイズに計算されていません。

これが本当なら... はなぜインラインスタイリングを使用しないのですか?

免責事項:私はstackoverflowがこのような質問に対して「閉鎖」されていることを理解しています。あなたが深く怒っているなら、私はここに尋ねた(私は誰だと思いますか?)私ができるサイトとコミュニティを教えてください:)

+1

非常に主観的ですので、適切ではありません。クラスやインラインスタイルを使用して赤色にすることができます。私はあなたのアプリなので、あなたが使っているものは気にしません。それは個人的またはチームの好みです。 –

+0

同じコードを複数回記述する必要があるため、インラインスタイルは通常悪いです。このようなコードを維持することは難しいかもしれません。なぜなら、cssで1つのクラスを変更するのではなく、そうでなければそのクラスを持つすべての要素を変更する必要があるからです。あなたの場合でも、1つの場所でコードを修正することができ、すべての要素が変更されるため、コードで実際に同じ問題が発生することはありません。インラインスタイルが最も重要なので、[css specificity](https://css-tricks.com/specifics-on-css-specificity/)の問題はまだありますが、 –

+0

私はこれがちょっと "反復的"だと言います。一方、別のCSSクラスを作成しても、それほど短くはありません。 'color:red;'を 'redclass'などにモーフィングするだけで、他のスタイルをそのクラスに追加しない限り、ページサイズがそれほど変化しません。しかし、誰かがあなたのソースを見るかどうか想像してください。それは厄介です! –

答えて

2

スタイルをインライン展開することは必ずしも悪くはありません同意しない純粋主義者)。私は、いくつかのインライン展開が理にかなっていると信じています。あなたが一回限りの概念証明を生成しているなら、それを求めてください。もしそれが昨日行われなければならず、来週リファクタリング時間があれば、それは機能するかもしれません。

あなたが所持しているものは、(リアクションコードにある)HTMLを見ると、あなたがしようとしている視覚的な変化が見られます。

私が正しいかどうかを判断しようとするのは、長期的な影響です。数年後にこの色が赤色に変わることを望む人はどうなりますか?その場所にいる開発者は、コードではなくCSSを最初に考えるだろう。

私はインラインスタイルではなく、適切な分類だけに頼って、コードを掘り起こして再コンパイルするのではなく、CSSファイルを変更してビジュアルスタイルを調整することができます。また、インラインスタイルはCSSコード(外部ファイルから)でオーバーライドするのが難しいことに注意してください。

+1

あなたはどこから来ているのか理解していますが、これはあなたの考え方とは関係があります。現在、ほとんどの開発者は純粋なCSSを使用せず、Sassのようなものを使用しますが、スタイリングに変更を加えた後もアプリを「コンパイル」または「前処理」する必要があります。 – Tiwaz89

+1

私は避けているSASS/CSSコンパイル部分について理解しています。より大きな問題は、人々がスタイリングを探す場所です。一般的にコードの最後の場所です。 – rfornal

+0

人はどこでhtmlを探すのか、コード内では最後の場所になると言うことができます。私はそれがどのように反応するのかを知っているが、反応アプリをサポートしている人は、htmlがjsファイルではなくhtmlファイルに属していると思うだろう。アイデアは、コードは最近のことが起きているようだ。 – user441521

関連する問題