NEXT.js
を用いてログイン機能を実装していました。
他フレームワークのように、ログインしているユーザーにはAを見せて、ログインしていないユーザーにはBを見せるようなコードを以下のように、JSX
で書くかと思います。
Javascript
1{isLogin ? ( 2 <MySecretComponent/> 3) : ( 4 <div>ログインしてください</div> 5)}
SPA
でないフレームワークであれば、ログインしていない場合MySecretComponent
はクライアントサイドに読み込まれる事は無いですが、NEXT.js
はSPA
であるため、ログインしていない時も表示はされませんがコード自体はダウンロードされてしまうかと思います
隠したい物が単なるデータであればfetchAPI
でとるようにしてそこに認証をつければよいとおもいますが、コンポーネント自体を隠したい場合はどのようにすればいいのでしょうか?
(JSX
コンポーネントはシンボルを使っているようでJSON
に変換することが出来ず例えばres.send(<MySecretComponent/>)
のようにAPI
経由でコンポーネントを丸ごとという風にもできませんでした・・・・)
SPA
ページでは機能がハックされることは仕方のない事なのでしょうか?
おそらく私に何かしらの知識が足りていない可能性の方が高いと思っていますが・・・
よろしくお願いいたします。