1. ホーム
  2. javascript

[解決済み] HTMLをレンダリングせずにReactを使用することは可能ですか?

2023-07-21 18:29:09

質問

htmlをレンダリングすることなく、Reactを使用してロジックを実行し、データをjavascript関数に送り返すことが可能かどうか疑問に思っています。私が考えているコンポーネントは、あなたがいくつかのデータを渡すものであり、それはreactの外のjavascript関数にデータを送り返すでしょう。それが可能であることは知っていますし、私自身もその部分を行ったことがありますが、必要なhtmlをレンダリングせずにこれを行う方法がよくわかりません。これはreactの実用的な使用例なのでしょうか?

どのように解決するのでしょうか?

React >= 16.2時点では、これらのバージョンのいずれでも使用可能です。

render() { 
   return false; 
}

render() { 
   return null; 
}

render() { 
   return []; 
}

render() { 
   return <React.Fragment></React.Fragment>; 
}

render() { 
   return <></>; 
}

戻る undefined は動作しません。


私が考えているコンポーネントは、あなたがいくつかのデータを渡すものです。 そして、それはreactの外のjavascript関数にデータを送り返します。

なぜそのためのコンポーネントを作りたいのでしょうか?ほとんどの場合、既存のコンポーネントの中にある普通のjs関数で十分です。

例えば、コンポーネントがマウントされたときにサイドエフェクトを設定し、アンマウントされたときにそれを破棄するような使い方があります。例えば、縦向きのReactNativeモバイルアプリがある場合、以下のようなものが考えられるでしょう。 <Landscape/> コンポーネントがあり、マウントされると一時的にアプリを横向きに表示することができ、アンマウントされると向きはアプリのデフォルトにリセットされます。既存のコンポーネントでこの向きの変更を管理できるのは確かですが、専用のコンポーネントを作成する方が便利で再利用しやすいかもしれません。

Reactはサーバーサイドでも動作するので、DOMの変更を伴わないような使い方も可能だと思います(ただし、仮想DOMの計算だけかもしれません)。