Skip to content

Commit

Permalink
Merge pull request #753 from reactjs/tr/script
Browse files Browse the repository at this point in the history
Translate "<script>"
  • Loading branch information
smikitky authored Apr 22, 2024
2 parents cc4ca82 + 744692c commit bceedfa
Showing 1 changed file with 39 additions and 39 deletions.
78 changes: 39 additions & 39 deletions src/content/reference/react-dom/components/script.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ canary: true

<Canary>

React's extensions to `<script>` are currently only available in React's canary and experimental channels. In stable releases of React `<script>` works only as a [built-in browser HTML component](https://react.dev/reference/react-dom/components#all-html-components). Learn more about [React's release channels here](/community/versioning-policy#all-release-channels).
React による `<script>` の機能拡張は、現在 React の Canary および experimental チャンネルでのみ利用可能です。React の安定版リリースでは、`<script>` は単なる[組み込みのブラウザ HTML コンポーネント](https://react.dev/reference/react-dom/components#all-html-components)として機能します。[React のリリースチャンネルについてはこちらをご覧ください](/community/versioning-policy#all-release-channels)

</Canary>

<Intro>

The [built-in browser `<script>` component](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script) lets you add a script to your document.
[ブラウザ組み込みの `<script>` コンポーネント](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script)を利用することで、ドキュメントにスクリプトを追加できます。

```js
<script> alert("hi!") </script>
Expand All @@ -23,71 +23,71 @@ The [built-in browser `<script>` component](https://developer.mozilla.org/en-US/

---

## Reference {/*reference*/}
## リファレンス {/*reference*/}

### `<script>` {/*script*/}

To add inline or external scripts to your document, render the [built-in browser `<script>` component](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script). You can render `<script>` from any component and React will [in certain cases](#special-rendering-behavior) place the corresponding DOM element in the document head and de-duplicate identical scripts.
ドキュメントにインラインスクリプトまたは外部スクリプトを追加するためには、[ブラウザ組み込みの `<script>` コンポーネント](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script)をレンダーします。任意のコンポーネントから `<script>` をレンダーでき、React [特定の場合](#special-rendering-behavior)に対応する DOM 要素をドキュメントの head 内に配置し、同一スクリプトの重複解消処理を行います。

```js
<script> alert("hi!") </script>
<script src="script.js" />
```

[See more examples below.](#usage)
[さらに例を見る](#usage)

#### Props {/*props*/}
#### props {/*props*/}

`<script>` supports all [common element props.](/reference/react-dom/components/common#props)
`<script>` は、[一般的な要素の props](/reference/react-dom/components/common#props) をすべてサポートしています。

It should have *either* `children` or a `src` prop.
props として `children` または `src` のいずれかが必要です。

* `children`: a string. The source code of an inline script.
* `src`: a string. The URL of an external script.
* `children`: 文字列。インラインスクリプトのソースコード。
* `src`: 文字列。外部スクリプトの URL

Other supported props:
他に、以下の props がサポートされます。

* `async`: a boolean. Allows the browser to defer execution of the script until the rest of the document has been processed — the preferred behavior for performance.
* `crossOrigin`: a string. The [CORS policy](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin) to use. Its possible values are `anonymous` and `use-credentials`.
* `fetchPriority`: a string. Lets the browser rank scripts in priority when fetching multiple scripts at the same time. Can be `"high"`, `"low"`, or `"auto"` (the default).
* `integrity`: a string. A cryptographic hash of the script, to [verify its authenticity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity).
* `noModule`: a boolean. Disables the script in browsers that support ES modules — allowing for a fallback script for browsers that do not.
* `nonce`: a string. A cryptographic [nonce to allow the resource](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/nonce) when using a strict Content Security Policy.
* `referrer`: a string. Says [what Referer header to send](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#referrerpolicy) when fetching the script and any resources that the script fetches in turn.
* `type`: a string. Says whether the script is a [classic script, ES module, or import map](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script/type).
* `async`: ブーリアン。ドキュメントの残りの部分の処理を完了するまでブラウザにスクリプトの実行を遅延させることを許可します。これはパフォーマンスのために推奨される動作です。
* `crossOrigin`: 文字列。使用する [CORS ポリシー](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin)。可能な値は `anonymous` `use-credentials` です。
* `fetchPriority`: 文字列。複数のスクリプトを同時にフェッチする際に、ブラウザにスクリプトの優先付けを行わせます。`"high"``"low"``"auto"`(デフォルト)のいずれかです。
* `integrity`: 文字列。文字列。[真正性を検証する](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity)ために使用するスクリプトの暗号化ハッシュ。
* `noModule`: ブーリアン。ES モジュールをサポートするブラウザでこのスクリプトを無効にすることで、サポートしていないブラウザ用のフォールバックスクリプトとして利用できるようにします。
* `nonce`: 文字列。厳格なコンテンツセキュリティポリシーを使用する際に[リソースを許可するための暗号化 nonce](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/nonce)
* `referrer`: 文字列。スクリプトをフェッチする際、およびそのスクリプトが更にリソースフェッチする際に送信する [Referer ヘッダー](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#referrerpolicy)を指定します。
* `type`: 文字列。スクリプトが[従来のスクリプト、ES モジュール、またはインポートマップ](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script/type)のいずれであるかを指定します。

Props that disable React's [special treatment of scripts](#special-rendering-behavior):
以下の props は React による[スクリプトの特別な扱い](#special-rendering-behavior)を無効にします。

* `onError`: a function. Called when the script fails to load.
* `onLoad`: a function. Called when the script finishes being loaded.
* `onError`: 関数。スクリプトのロードに失敗したときに呼び出されます。
* `onLoad`: 関数。スクリプトのロードが完了したときに呼び出されます。

Props that are **not recommended** for use with React:
以下は React での使用が**推奨されない** props です。

* `blocking`: a string. If set to `"render"`, instructs the browser not to render the page until the scriptsheet is loaded. React provides more fine-grained control using Suspense.
* `defer`: a string. Prevents the browser from executing the script until the document is done loading. Not compatible with streaming server-rendered components. Use the `async` prop instead.
* `blocking`: 文字列。`"render"` と設定されている場合、スクリプトがロードされるまでページを描画しないようブラウザに指示します。React ではサスペンスを通じてより細かい制御を提供します。
* `defer`: 文字列。ドキュメントの読み込みが完了するまでブラウザによるスクリプトの実行を防ぎます。これはストリーミングでサーバレンダーされるコンポーネントと互換性がありません。代わりに `async` を使用してください。

#### Special rendering behavior {/*special-rendering-behavior*/}
#### 特別なレンダー動作 {/*special-rendering-behavior*/}

React can move `<script>` components to the document's `<head>`, de-duplicate identical scripts, and [suspend](/reference/react/Suspense) while the script is loading.
React `<script>` コンポーネントをドキュメントの `<head>` に移動させ、同一スクリプトの重複解消処理を行い、スクリプトの読み込み中に[サスペンド](/reference/react/Suspense)を発生させます。

To opt into this behavior, provide the `src` and `async={true}` props. React will de-duplicate scripts if they have the same `src`. The `async` prop must be true to allow scripts to be safely moved.
この動作を有効にするには、props として `src` `async={true}` props を指定してください。React は同じ `src` を持つスクリプトが重複しないようにします。スクリプトを安全に移動させるために `async` true である必要があります。

If you supply any of the `onLoad` or `onError` props, there is no special behavior, because these props indicate that you are managing the loading of the script manually within your component.
props として `onLoad` または `onError` を指定した場合、特別な動作は発生しません。これらの props は、コンポーネント内でスクリプトの読み込みを手動で管理してしていることを意味するからです。

This special treatment comes with two caveats:
この特別な動作に関して、以下の 2 つの注意点があります。

* React will ignore changes to props after the script has been rendered. (React will issue a warning in development if this happens.)
* React may leave the script in the DOM even after the component that rendered it has been unmounted. (This has no effect as scripts just execute once when they are inserted into the DOM.)
* スクリプトがレンダーされた後、React props に変更があってもそれを無視します(開発中にこれが起きた場合は React が警告を発します)。
* スクリプトをレンダーしていたコンポーネントがアンマウントされた後も、React DOM にスクリプトを残すことがあります。(スクリプトは DOM に挿入された際に一度だけ実行されるものなので、これによる影響はありません。)

---

## Usage {/*usage*/}
## 使用法 {/*usage*/}

### Rendering an external script {/*rendering-an-external-script*/}
### 外部スクリプトのレンダー {/*rendering-an-external-script*/}

If a component depends on certain scripts in order to be displayed correctly, you can render a `<script>` within the component.
コンポーネントが正しく表示されるために特定のスクリプトに依存している場合、当該コンポーネント内で `<script>` をレンダーできます。

If you supply an `src` and `async` prop, your component will suspend while the script is loading. React will de-duplicate scripts that have the same `src`, inserting only one of them into the DOM even if multiple components render it.
props として `src` `async` を指定すると、スクリプトが読み込まれる間、コンポーネントはサスペンド状態になります。スクリプトの重複を避けるため、複数のコンポーネントが同じ `src` を持つスクリプトをレンダーしている場合には React は DOM にそれをひとつだけ挿入します。

<SandpackWithHTMLOutput>

Expand Down Expand Up @@ -115,12 +115,12 @@ export default function Page() {
</SandpackWithHTMLOutput>

<Note>
When you want to use a script, it can be beneficial to call the [preinit](/reference/react-dom/preinit) function. Calling this function may allow the browser to start fetching the script earlier than if you just render a `<script>` component, for example by sending an [HTTP Early Hints response](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/103).
スクリプトを使用する場合、[preinit](/reference/react-dom/preinit) 関数を呼び出すことが有用です。この関数を呼び出すことで、たとえば [HTTP Early Hints レスポンス](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/103)を送信でき、ブラウザがスクリプトのフェッチをより早く開始できるかもしれません。
</Note>

### Rendering an inline script {/*rendering-an-inline-script*/}
### インラインスクリプトのレンダー {/*rendering-an-inline-script*/}

To include an inline script, render the `<script>` component with the script source code as its children. Inline scripts are not de-duplicated or moved to the document `<head>`, and since they don't load any external resources, they will not cause your component to suspend.
インラインスクリプトを含めるには、`<script>` コンポーネントをレンダーする際に children としてスクリプトのソースコードを指定します。インラインスクリプトは重複解消処理が行われず、ドキュメントの `<head>` に移動されません。外部リソースを読み込まないため、コンポーネントがサスペンド状態になることはありません。

<SandpackWithHTMLOutput>

Expand Down

0 comments on commit bceedfa

Please sign in to comment.