2017-07-28 5 views
0

私は現在、私のReactアプリケーションのパフォーマンスに関する問題に直面しています。ユーザーインターフェイスの「反応性」を向上させるために従うべき良いプラクティスがありますか?React User Interfaceのパフォーマンスを改善するための良い方法はありますか?

たとえば、JavaScript in JSX条件の数を減らすことができます。 は、{ carIsRed === true ? <RedCar /> : <BlackCar /> }などですが、ほとんどが必要です。

私は大きなテーブルを表示するためにreact-scrollbar-xを使用しています。これは、アプリケーションの全体的なパフォーマンスに影響を与える可能性があります。

ユーザーインターフェイスのパフォーマンスを向上させることに焦点を当てるべき他のポイントがありますか?

はここに私のコンポーネントの一部です:

 {element.description.length > 0 ? 
     <Popup 
      trigger={ 
      <Table.Cell style={{ verticalAlign:'middle', maxWidth: '100px', overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }}> 
       {(editProject === false) || (editProject === true && editProjectIndex !== index) ? 
       element.description 
       : null} 
       {editProject === true && editProjectIndex === index ? 
       <Form> 
        <TextArea 
        autoHeight 
        placeholder='Description' 
        value={this.state.newProjectDescription} 
        onChange={this.handleChangeNewProjectDescription} 
        /> 
       </Form> 
       : null} 
      </Table.Cell> 
      } 
      content={element.description} 
      basic 
     /> : 
     <Table.Cell style={{ verticalAlign:'middle', maxWidth: '100px', overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }} negative={element.description.length === 0}> 
      {(editProject === false) || (editProject === true && editProjectIndex !== index) ? 
      element.description 
      : null} 
      {editProject === true && editProjectIndex === index ? 
      <Form> 
       <TextArea 
       autoHeight 
       placeholder='Description' 
       value={this.state.newProjectDescription} 
       onChange={this.handleChangeNewProjectDescription} 
       /> 
      </Form> 
      : null} 
     </Table.Cell> 
     } 

enter image description here

ここで私は、レンダリングプロセス

+1

React Developer Toolsと呼ばリアクトあなたはコンポーネントの数千人の中に取得を開始するまで、パフォーマンスの問題を持っていません。具体的な例を見なくても助けてくれることはあまりありません。 –

+0

ご意見ありがとうございます、私は私の質問を更新します。 – awzx

+0

"私は現在、私のReactアプリケーションの1つでパフォーマンスの問題に直面しています..."、パフォーマンスの問題が正確であること、期待されるパフォーマンスがどのように見えるかを注意してください。 – Pineda

答えて

2

を改善したい対象の私のコンポーネントのインタフェースがあります非常に大きいためreact-virtualizedというパッケージがありますReactのテーブルを使用して、レンダリングのパフォーマンスを大幅に向上させます。

react-scrollbar-xは、それを見て、this.setState()を使用して、何回も呼ばれるメソッドの中でthis.setState()を使用しています。これは推測していますことはあなたのパフォーマンス低下の原因である

あなたがChromeを使用している場合、アプリケーションのパフォーマンスを視覚化するのに最適な拡張機能がある

+0

私は反応のスクロールバーを主張していました - xは、パフォーマンスのこの損失の原因です。反応仮想化はすばらしい代替手段と思われます! – awzx

+1

これは、out.setstate()をonscroll、onresize、またはondragのようなメソッドの中で呼び出すパッケージの数が多いため、パフォーマンスが低下する可能性があります –

関連する問題