Reactでの車両画像、サーバーで解決し、プロップスとして渡し、すべてのグリッドで安定します。

Reactチームは同じ午後に2つの問題に直面します:APIキーはブラウザに到達してはいけません、車両のグリッドは読み込み中に跳ねてはいけません。秘密鍵が存在する場所で解決し、URLをクライアントに送信すると、両方の問題が解消します。

LP react: hero1
LP react: hero2
LP react: s1

APIキーはブラウザに置かないでください。

クライアントコンポーネントからのフェッチでキーがdevtoolsを開いた誰にでも渡されます。ルートハンドラー、サーバーコンポーネント、または独自のバックエンドで車両を解決し、ブラウザーは完成した画像URLだけを見ます。

  • キーはサーバー側に、環境変数に保持します
  • 画像URLはプレーンな文字列で、プロップとして安全に渡すことができます
  • CORSの設定は不要です、ブラウザは画像のみを読み込むため

React版の統合

一度解決し、URLを下に渡し、ブラウザにキャッシュさせます。ここで何か巧妙なことは起こりません。それがポイントです。

01
SDKをインストール

npm i vehicleimagery、次に、秘密鍵が既に存在する場所でクライアントを作成します。コンポーネント内ではありません。

02
車両を解決します

VIN、ナンバープレート、またはメーカー、モデル、年を入力すると、すべての角度の画像URLが返ってきます。

03
URLをpropsとして渡す

カードには文字列を渡します。プロバイダーは不要、コンテキストは不要、クライアント側のフェッチも不要、ロードウォーターフォールも不要です。

04
アスペクト比を固定

固定比率のラッパーとレンダリングサイズに合った幅パラメータを使用すると、レイアウトシフトを事前に防ぐことができます。

LP react: s2

跳ねないグリッド

車両グリッドでのレイアウトシフトは、ほとんどの場合、サイズの指定されていない画像です。カードが実際にレンダリングする幅をリクエストし、固定比率のボックスでラップすると、最初のペイントでグリッドが安定し、2回安定するのではなくなります。

  • 幅、フォーマット、品質はリクエストパラメータです
  • 車両間で一貫したフレーミングのため、セルが揃います
  • WebPでダークモードをサポートし、別のアセットは不要

Reactでの車両画像、実践編

ほとんどのReactコードベースは、プレースホルダ画像と後で修正するという約束から始まります。修正は通常、カードコンポーネント内のクライアントサイドのフェッチとして到着します。そこで問題が始まります:キーが露出し、各カードが独自のリクエストを開き、回答が異なるタイミングで到着するためにグリッドが再流れします。APIは高速ですが、そのパターンは間違っています。

実用的なバージョンは地味です。車両をリストデータを読み込む場所で解決し、結果のURLをリストオブジェクトに保持します。カードはレイアウトに合った幅のimgタグをレンダリングし、ブラウザはURLでキャッシュし、CDNが残りを処理します。コンポーネントツリーは画像APIの存在を知る必要がなくなります。

Reactチームが求めるもの

クライアントコンポーネントからAPIを呼び出せますか?

できますが、しない方が良いです。クライアントコンポーネントはブラウザで実行されるため、キーが一緒に移動します。ルートハンドラー、サーバーコンポーネント、またはバックエンドで解決し、URLをpropsとして渡します。

React Server Componentsと連携しますか?

はい、これが最もクリーンなフィットです。リストを読み込むサーバーコンポーネント内で解決し、URLを直接レンダリングします。統合に関することはクライアントバンドルに到達しません。

Reactコンポーネントを提供していますか?

いいえ、意図的にそうなっています。npmパッケージはフレームワーク非依存でURLを返します。車両画像はimgタグであり、それを私たちが制御するコンポーネントでラップすることは、あなたのデザインシステムの邪魔になるだけです。

レイアウトシフトを防ぐにはどうすればよいですか?

画像に固定アスペクト比のコンテナを設定し、レンダリングする幅をリクエストします。フレーミングが車両間で一貫しているため、1つの比率でグリッド全体に対応できます。

読み込み中にカードに表示すべきものは何ですか?

同じアスペクト比の中立的なプレースホルダー。URLはレンダリング前に知られているため、画像は通常、見えるプレースホルダーのステップなしで読み込まれます。

React Nativeと連携しますか?

はい。URLは通常のHTTPS画像URLですので、Imageコンポーネントが直接消費します。バックエンドで解決し、ウェブと同じように行います。

ブランチで試してみてください

リストデータの見た目とカードのサイズを教えてください。画像のURLをコンポーネントに落とし込む準備ができます。

  • カードの幅に合わせたサイズのWebPバリアント
  • ダークモード用の透明カットアウト
  • 試用版は本番統合ブランチをカバーします
ありがとうございます。メッセージを受け取りましたので、設定に合わせた画像のURLをお返しします。
問題が発生しました。もう一度お試しいただくか、info@vehicleimagery.com までご連絡ください。

グリッドに実際の車両を配置する

データからいくつかのVINや仕様と、レンダリングするカードの幅を送信してください。今すぐブランチに貼り付けることができるURLを受け取ります。

通常、同じ営業日中