Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

Next.js(ReactJS)でJSON-LDデータをレンダリングする方法

Next.jsやその他のReactJSプロジェクトでJSON-D(application / ld + json)スキーマを機能させる方法を学びましょう。

Next.js(または任意のReactアプリ)でJSON-LDデータをレンダリングするには、次を使用する必要があります:

  • <script> 要素。
  • dangerouslySetInnerHTML 属性。
  • JSON.stringify メソッド(serlialization用)。

JSON-LD LinkedDataのJavaScriptObjectNotationの略です。これは、Schema.orgデータをウェブサイトのコンテンツに関する検索エンジンに提示するための軽量な方法です。

例を見てみましょう。

次のように構造化されたHTMLJSON-LDスキーマがあるとします。

<script type="application/ld+json">
{
  "@context": "https://schema.org/", 
  "@type": "Product", 
  "name": "Name of service",
  "image": "https://somewebsite.com/static/images/some-image.jpg",
  "description": " I seek the means to fight injustice. To turn fear against those who prey on the fearful. Someone like you. Someone who'll rattle the cages. My anger outweighs my guilt.",
  "brand": "Company Name",
  "review": {
    "@type": "Review",
    "name": "Company Name ",
    "reviewBody": "It was a dog. It was a big dog. It's not who I am underneath but what I do that defines me. Well, you see... I'm buying this hotel and setting some new rules about the pool area.",
    "reviewRating": {
      "@type": "Rating",
      "ratingValue": "5"
    },
    "datePublished": "2020-04-06",
    "author": {"@type": "Person", "name": "Emma"}
  }
}
</script>

このJSON-LDスキーマをNext.jsで機能させるには、まずHTMLの<script>を削除します。 タグを付けると、JSON-LDオブジェクトが残ります。

次に、JSON-LDオブジェクトを次のように変数に割り当てます。

const schemaData = 
{
  "@context": "https://schema.org/", 
  "@type": "Product", 
  "name": "Name of service",
  "image": "https://somewebsite.com/static/images/some-image.jpg",
  "description": "I seek the means to fight injustice. To turn fear against those who prey on the fearful. Someone like you. Someone who'll rattle the cages. My anger outweighs my guilt.",
  "brand": "Company Name",
  "review": {
    "@type": "Review",
    "name": "Company Name ",
    "reviewBody": "It was a dog. It was a big dog. It's not who I am underneath but what I do that defines me. Well, you see... I'm buying this hotel and setting some new rules about the pool area.",
    "reviewRating": {
      "@type": "Rating",
      "ratingValue": "5"
    },
    "datePublished": "2020-04-06",
    "author": {"@type": "Person", "name": "Emma"}
  }
}

次に、schemaDataをシリアル化する必要があります JSON.stringify()の変数 :

JSON.stringify(schemaData)

最後に、JSON.stringify(schemaData)を追加します dangerouslySetInnerHTMLのオブジェクト値として <script>内の属性 ブラウザでレンダリングする要素:

<script
    type="application/ld+json"
    dangerouslySetInnerHTML={{ __html: JSON.stringify(schemaData) }}
  />

混乱している場合は、チュートリアルのコードに基づいた完全なページの例を次に示します。これは、すべてのNext.js/ReactWebサイトで機能するはずです。

import React from 'react';

const schemaData = 
{
  "@context": "https://schema.org/", 
  "@type": "Product", 
  "name": "Name of service",
  "image": "https://somewebsite.com/static/images/some-image.jpg",
  "description": "I seek the means to fight injustice. To turn fear against those who prey on the fearful. Someone like you. Someone who'll rattle the cages. My anger outweighs my guilt.",
  "brand": "Company Name",
  "review": {
    "@type": "Review",
    "name": "Company Name ",
    "reviewBody": "It was a dog. It was a big dog. It's not who I am underneath but what I do that defines me. Well, you see... I'm buying this hotel and setting some new rules about the pool area.",
    "reviewRating": {
      "@type": "Rating",
      "ratingValue": "5"
    },
    "datePublished": "2020-04-06",
    "author": {"@type": "Person", "name": "Emma"}
  }
}

const SomePage = () => {
  return (
    <>
      <script
        type="application/ld+json"
        dangerouslySetInnerHTML={{ __html: JSON.stringify(structuredData) }}
      />
      <div>Your content</div>
    </>
  );
};

export default SomePage;

  1. データをバックアップするにはどうすればよいですか?

    今日の IT の世界では、包括的なバックアップ戦略を持つことが不可欠です。データが失われる方法は非常に多いため、不快な状況に直面しないためには、データを正常にバックアップする方法を理解することが重要です。では、どのようにデータをバックアップできますか? データ損失 サイバー攻撃、不正な従業員、自然災害、メディアの損傷、および人的エラーは、データを失う可能性があるいくつかの方法にすぎません.データを失うことは、個人にとっては迷惑で悲痛なことかもしれませんが、組織にとっては、その影響は取り返しのつかないものになる可能性があります. Consoltech のこれらの恐ろしい数字のいくつかを以下で見

  2. Android でデータをバインドする方法

    データ バインディングは、視覚的なユーザー入力要素に情報 (データ) を接着するときに使用する手法です。このプロセスでは、入力が更新されるたびに、その背後にあるデータも更新されます。 これは決して新しい概念ではなく、これを設計に組み込んだフレームワークが多数あります (AngularJS/React/Vue など)。 この記事で注目するのは、フロントエンド フレームワークではなく、モバイル開発です。 Google は、Android Jetpack の一部である Data Binding Library を Android に導入しました。 Jetpack ライブラリ スイートに慣れ