-
レンダー関数内で直接計算を行う: Reactコンポーネントのレンダー関数内で直接計算を行う方法です。例えば、以下のようなコードが考えられます。
import React from 'react'; function MyComponent() { const a = 5; const b = 10; const sum = a + b; return ( <div> <p>Sum: {sum}</p> </div> ); }
この場合、
sum
という変数を定義し、その値をJSX内で表示しています。この方法はシンプルで理解しやすいですが、レンダリングごとに計算が実行されるため、パフォーマンスの問題が生じる可能性があります。 -
レンダリングの外で計算を行い、変数として渡す: レンダリングの前に計算を行い、その結果を変数としてレンダー関数に渡す方法もあります。例えば、以下のようにコードを変更します。
import React from 'react'; function calculateSum(a, b) { return a + b; } function MyComponent() { const a = 5; const b = 10; const sum = calculateSum(a, b); return ( <div> <p>Sum: {sum}</p> </div> ); }
この方法では、
calculateSum
という別の関数を作成し、その中で計算を行っています。その後、計算結果を変数sum
としてレンダー関数に渡しています。この方法は再利用性が高く、パフォーマンスも向上します。 -
useMemoフックを使用する: Reactの
useMemo
フックを使用することで、計算結果をキャッシュし、必要に応じて再計算する方法もあります。以下は、useMemo
フックを使った例です。import React, { useMemo } from 'react'; function MyComponent() { const a = 5; const b = 10; const sum = useMemo(() => a + b, [a, b]); return ( <div> <p>Sum: {sum}</p> </div> ); }
useMemo
フックは、第1引数に計算を行う関数、第2引数に依存する変数のリストを受け取ります。依存する変数の値が変化しない限り、キャッシュされた計算結果が再利用されます。
これらのアプローチを使って、React.jsのレンダー関数内での計算を実現することができます。適切な方法は、具体的な要件とパフォーマンスの要件によって異なります。