Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

#4 react-v16.13.0.md add japanese transration #329

Merged
merged 11 commits into from May 13, 2020

Conversation

PeterTakahashi
Copy link
Contributor

add japanese transration


title: "React v16.13.0"
author: [threepointone]
redirect_from:

  • "blog/2020/03/02/react-v16.13.0.html"

本日、React 16.13.0 をリリースします。このリリースには、今後のメジャーリリースに備えて、バグ修正と新しい非推奨の警告が含まれています。

New Warnings {#new-warnings}

Warnings for some updates during render {#warnings-for-some-updates-during-render}

React コンポーネントは、レンダリング中に他のコンポーネントに副作用を与えてはいけません。

レンダリング中に setState を呼び出すことはサポートされていますが 同じコンポーネントに対してのみ*. 別のコンポーネントでレンダリング中に setState を呼び出すと、警告が表示されるようになりました。

Warning: Cannot update a component from inside the function body of a different component.

**この警告は、意図しない状態変更によって引き起こされるアプリケーションのバグを見つけるのに役立ちます。**レンダリングの結果として他のコンポーネントの状態を意図的に変更したい場合は、setState呼び出しをuseEffectにラップすることができます。

Warnings for conflicting style rules {#warnings-for-conflicting-style-rules}

CSSプロパティのlonghandとshorthandを含む style を動的に適用する場合、特定の更新の組み合わせにより、スタイリングの一貫性が失われることがあります。例えば、以下のようになります。

<div style={toggle ? 
  { background: 'blue', backgroundColor: 'red' } : 
  { backgroundColor: 'red' }
}>
  ...
</div> 

この <div>toggle の値に関係なく常に背景色が赤になると思っていたかもしれません。しかし、このデモを見てわかるようにtoggle の値を truefalse の間で交互に変更すると、背景色は red から始まり、その後 transparentblue の間で交互に変更されます。

Reactは、スタイルルールの競合を検出し、警告をログに記録するようになりました。
警告が検出されたソースコードを修正するには、同じCSSプロパティのshortandとlonghandのバージョンをstyleプロップに混在させないようにしてください。

Warnings for some deprecated string refs {#warnings-for-some-deprecated-string-refs}

String Refs は古いバージョンのAPIは開発者に気に入れられておらず、将来的には非推奨になりそうです。

<Button ref="myRef" />

(String Refs と一般的な refs を混同しないでください。)

将来的には、String Refsからの移行を自動化するスクリプト(a "codemod")を提供する予定です。しかし、まれに自動移行できないケースがあります。このリリースでは、非推奨となるケースに先立ち、そのようなケースにのみ警告を追加しています。

例えば、Render Prop パターンと一緒に String Refs を使用した場合に発生します。

class ClassWithRenderProp extends React.Component {
  componentDidMount() {
    doSomething(this.refs.myRef);
  }
  render() {
    return this.props.children();
  }
}

class ClassParent extends React.Component {
  render() {
    return (
      <ClassWithRenderProp>
        {() => <Button ref="myRef" />}
      </ClassWithRenderProp>
    );
  }
}

このようなコードはしばしばバグを示します。(参照は ClassParent で利用できると思っていたかもしれませんが、代わりに ClassWithRenderProp に置かれてしまいます)。

このようなコードを持っていない可能性が高いです。もし持っていて、それが意図的なものであれば、それを React.createRef() の代わりに:

class ClassWithRenderProp extends React.Component {
  myRef = React.createRef();
  componentDidMount() {
    doSomething(this.myRef.current);
  }
  render() {
    return this.props.children(this.myRef);
  }
}

class ClassParent extends React.Component {
  render() {
    return (
      <ClassWithRenderProp>
        {myRef => <Button ref={myRef} />}
      </ClassWithRenderProp>
    );
  }
}

Note

To see this warning, you need to have the babel-plugin-transform-react-jsx-self installed in your Babel plugins. It must only be enabled in development mode.

If you use Create React App or have the "react" preset with Babel 7+, you already have this plugin installed by default.

Deprecating React.createFactory {#deprecating-reactcreatefactory}

React.createFactory はReact要素を作成するための旧版のルパーです。このリリースでは、メソッドに非推奨の警告が追加されています。これは将来のメジャーバージョンで削除される予定です。

React.createFactory の使用法を通常の JSX で置き換えてください。代わりに、この一行ヘルパーをコピー&ペーストするか、ライブラリとして公開することもできます。

let createFactory = type => React.createElement.bind(null, type);

全く同じことをしています。

Deprecating ReactDOM.unstable_createPortal in favor of ReactDOM.createPortal {#deprecating-reactdomunstable_createportal-in-favor-of-reactdomcreateportal}

React 16がリリースされたとき、createPortalは公式にサポートされるAPIになりました。

しかし、unstable_createPortalを採用している少数のライブラリが動作するように、unstable_createPortalをサポートされたエイリアスとして残していました。現在、この不安定なエイリアスは非推奨となっています。unstable_createPortal の代わりに createPortal を直接使ってください。これは全く同じシグネチャを持っています。

Other Improvements {#other-improvements}

Component stacks in hydration warnings {#component-stacks-in-hydration-warnings}

React は開発警告にコンポーネントスタックを追加し、開発者がバグを分離してプログラムをデバッグできるようにします。今回のリリースでは、以前はなかった多くの開発警告にコンポーネントスタックが追加されました。例として、以前のバージョンにあったこのハイドレーション警告を考えてみましょう。

A screenshot of the console warning, simply stating the nature of the hydration mismatch: "Warning: Expected server HTML to contain a matching div in div."

コードのエラーを指摘していますが、どこにエラーが存在しているのか、次に何をすればいいのかが明確ではありません。このリリースでは、この警告にコンポーネントスタックが追加され、以下のようになりました。

A screenshot of the console warning, stating the nature of the hydration mismatch, but also including a component stack : "Warning: Expected server HTML to contain a matching div in div, in div (at pages/index.js:4)..."

これにより、問題がどこにあるのかが明確になり、より早くバグの場所を特定して修正することができます。

Notable bugfixes {#notable-bugfixes}

このリリースには、他にもいくつかの注目すべき改善点が含まれています。

  • 厳密な開発モードでは、React はライフサイクルメソッドを2回呼び出し、不要な副作用の可能性を洗い出すようにしています。このリリースでは、その動作を shouldComponentUpdate に追加しています。これは、shouldComponentUpdateに副作用がない限り、ほとんどのコードには影響しないはずです。これを修正するには、副作用のあるコードを componentDidUpdate に移動してください。

  • 厳密な開発モードでは、レガシーコンテキストAPIの使用に関する警告には、警告のトリガーとなったコンポーネントのスタックが含まれていませんでした。このリリースでは、不足していたスタックが警告に追加されます。

  • 無効な <button> 要素に対して onMouseEnter がトリガーされないようになりました。

  • ReactDOM は v16 を公開して以来、version のエクスポートがありませんでした。このリリースではそれが追加されました。アプリケーションロジックでの使用はお勧めしませんが、同じページ上のReactDOMのバージョンの不一致や複数のバージョンの問題をデバッグする際に便利です。

これらの問題やその他の問題を解決してくれた貢献者に感謝します。完全なchangelog 下記を参照してください。

Installation {#installation}

React {#react}

React v16.13.0 はnpmで利用可能です。

YarnでReact 16をインストールするには、下記を実行します

yarn add react@^16.13.0 react-dom@^16.13.0

npmでReact 16をインストールするには、下記を実行します

npm install --save react@^16.13.0 react-dom@^16.13.0

また、CDN経由でReactのUMDビルドも提供しています

<script crossorigin src="https://unpkg.com/react@16/umd/react.production.min.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script>

詳細のスクリプト設置方法については、説明書を参照してください。

Changelog {#changelog}

React {#react}

  • Warn when a string ref is used in a manner that's not amenable to a future codemod (@lunaruan in #17864)
  • Deprecate React.createFactory() (@trueadm in #17878)

React DOM {#react-dom}

Concurrent Mode (Experimental) {#concurrent-mode-experimental}

@netlify
Copy link

netlify bot commented May 3, 2020

Deploy preview for ja-reactjs ready!

Built with commit 398dfc8

https://deploy-preview-329--ja-reactjs.netlify.app

@smikitky
Copy link
Member

smikitky commented May 3, 2020

そもそもブログ記事はこれまで一つも翻訳してきておらず、今後も積極的に翻訳する予定はありませんでした。「せっかくやっていただいたので」ということでこの記事1個だけマージしてしまうと、大量にある残りの翻訳されていないブログ記事も今後翻訳されるのかと期待されてしまいますし、少なくとも古い記事まで全部翻訳するのも現実的ではないと思います。

まあ「過去ログ全部は無理でも2020年以降からは全部翻訳する」といった方針に転換して作業を進めていくことは可能だと思いますが、現時点では何の合意もない状況です。

@koba04 @potato4d どうしましょう? 個人的にはブログには結構大事なことが載っていることもあるので、「2020年以降からは翻訳していく」とかでもいい気がします。

@PeterTakahashi
Copy link
Contributor Author

@smikitky
すみません。確認せずいきなり翻訳をしてしまいました。
他に翻訳を優先的にしたいページなどがありましたら教えてください。

@smikitky
Copy link
Member

smikitky commented May 4, 2020

現時点では当初予定していた記事については翻訳が終わっており、元記事の細かな更新に追従している状態です。もしも更に翻訳対象を増やすのだとすればブログにはなると思いますが…

@koba04
Copy link
Member

koba04 commented May 4, 2020

@smikitky そうですね、そんなに頻繁にポストされるわけでもないので、2020年以降から翻訳する案いいと思います。

Copy link
Member

@smikitky smikitky left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • 見出しも翻訳してください。
  • 「レンダリング」という言葉は基本的に使わず「レンダー」になります。他「コンテクスト」「レンダープロップ」などの用語統一を行っています。
  • 行の不一致が散見されますので対応をお願いします。基本的に、GitHubの差分で見て、行番号まで左右で完全に対応しているようにさせてください。
  • 英文字と和文との間に半角スペースがない、などのスタイリングの問題が多数あります。コミットの際に textlint が大量のエラーを出力していたと思いますので、対応をお願いします。

以上は、https://github.com/reactjs/ja.reactjs.org/blob/master/TRANSLATION.md に解説がありますので確認をお願いします。

content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
@smikitky
Copy link
Member

smikitky commented May 5, 2020

あ、blog は現状 textlint の対象でなかったため、本来出るべきエラーが出てなかったんですね…。すみません、設定を修正しますのでお待ちください。

@PeterTakahashi PeterTakahashi force-pushed the ja/transration/react-v16.13.0-md branch from fbadd74 to cc0f9d8 Compare May 5, 2020 10:16
@PeterTakahashi PeterTakahashi force-pushed the ja/transration/react-v16.13.0-md branch from 67c723f to 0bed9d6 Compare May 5, 2020 10:25
Copy link
Member

@smikitky smikitky left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • 前回のもののうち対応いただけていないレビューコメントが複数ありますので対応をお願いします。多分「hidden conversations」みたいなのをクリックすると更に出てきます。
  • warnings はあくまで console に出てくる開発者向け警告のことであり、単なる「注意点」ではありません。「警告」と訳すようにお願いします。
  • 元と改行の仕方が厳密に一致していないためGitHubの差分ページで見たときに左右の文章が対応しなくなってしまっています。将来原文が更新された時にGitがどの英文とどの和文が対応しているのか分からない状態だと、非常に扱いづらいコンフリクトを生成してしまいます。対応をお願いします。

content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
PeterTakahashi added a commit to PeterTakahashi/ja.reactjs.org that referenced this pull request May 5, 2020
@PeterTakahashi PeterTakahashi force-pushed the ja/transration/react-v16.13.0-md branch from 3d5fc3c to f8fbe72 Compare May 5, 2020 13:40
@PeterTakahashi PeterTakahashi force-pushed the ja/transration/react-v16.13.0-md branch from f8fbe72 to b73fe18 Compare May 5, 2020 13:44
@smikitky
Copy link
Member

smikitky commented May 5, 2020

@SeiyaTAKAHASHI 以下のURLを見ていただくと分かると思うのですが指摘点が残っていますので確認をお願いします。この "Conversation" で見ているだけだと一部のコメントが省略されてしまうので "Files" の方で見てください。

https://github.com/reactjs/ja.reactjs.org/pull/329/files

PeterTakahashi pushed a commit to PeterTakahashi/ja.reactjs.org that referenced this pull request May 7, 2020
Copy link
Member

@smikitky smikitky left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

元ファイルは204行なのに翻訳後のファイルは208行になっており、随所に本来なかった空行などが含まれているため、翻訳前と翻訳後の行がずれています。繰り返しで申し訳ありませんが、GitHubのサイトの差分を行番号まで注意しながら見て、左右で対応がおかしくなっているところの修正をお願いします。

あとお手数ですが一旦 git merge master して、textlint がこのブログ記事にも適用されるようにしていただいて良いでしょうか。git commit 時にいろいろエラーが出ると思いますのでそちらの確認をお願いします。

content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
@PeterTakahashi PeterTakahashi force-pushed the ja/transration/react-v16.13.0-md branch from bd7e0d0 to 2c914d3 Compare May 7, 2020 13:01
@PeterTakahashi
Copy link
Contributor Author

textlintでこのようなエラーが発生し�、npm install @textlint-rule/textlint-rule-no-invalid-control-characterしましたが、直りませんでした。
原因がわかりましたら教えてください。現在調べ中です。

$ textlint content/blog/2020-02-26-react-v16.13.0.md
✖ Error
Failed to load textlint's rule module: "@textlint-rule/no-invalid-control-character" is not found.
See FAQ: https://github.com/textlint/textlint/blob/master/docs/faq/failed-to-load-textlints-module.md


✖ Stack trace
ReferenceError: Failed to load textlint's rule module: "@textlint-rule/no-invalid-control-character" is not found.
See FAQ: https://github.com/textlint/textlint/blob/master/docs/faq/failed-to-load-textlints-module.md

@smikitky
Copy link
Member

smikitky commented May 8, 2020

@SeiyaTAKAHASHI あ、もしかしたら私の以前の作業でのミスかもしれません…すみません。

ターミナルで

yarn add @textlint-rule/textlint-rule-no-invalid-control-character

としていただいていいでしょうか。yark.lock が更新されると思いますが git checkout yarn.lock で一旦 yark.lock だけ元に戻してコミットしないでおいてください。

@PeterTakahashi PeterTakahashi force-pushed the ja/transration/react-v16.13.0-md branch from a9c041c to 7cd1163 Compare May 9, 2020 06:45
@PeterTakahashi
Copy link
Contributor Author

@SeiyaTAKAHASHI 以下のURLを見ていただくと分かると思うのですが指摘点が残っていますので確認をお願いします。この "Conversation" で見ているだけだと一部のコメントが省略されてしまうので "Files" の方で見てください。

行間あわせました。
textlintは私のローカルではmoduleエラーが出て実行できませんでした。私のローカル環境のバージョンは下記になります。

node: v12.16.1
yarn: 1.22.4
npm: 6.14.4

Copy link
Member

@smikitky smikitky left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ではこちらで textlint をかけた場合の結果を添付します。修正を suggest しましたのでざっと確認して対応をお願いします。(14 箇所ありますので Files タブで見てください)

image

content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
Copy link
Member

@smikitky smikitky left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

102~106行目に訳抜けがあるのを見逃していました。以下を使ってください。

> 補足
>
> この警告を見るためには、Babel プラグインとして [babel-plugin-transform-react-jsx-self](https://babeljs.io/docs/en/babel-plugin-transform-react-jsx-self) がインストールされている必要があります。これは開発モードで*のみ*有効にする必要があります。
> 
> Create React App を使っているか、Babel 7 以降で "react" プリセットを使っている場合、既にデフォルトでこのプラグインはインストールされています。

PeterTakahashi and others added 2 commits May 10, 2020 01:42
@PeterTakahashi PeterTakahashi force-pushed the ja/transration/react-v16.13.0-md branch from d080e7f to 16d091b Compare May 9, 2020 16:50
Copy link
Member

@smikitky smikitky left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

これで大丈夫そうです、長くなってしまいましたがありがとうございました!

Copy link
Member

@smikitky smikitky left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ごめんなさいあと3か所 textlint がエラーを出していました、対応をお願いします…

content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
Copy link
Member

@smikitky smikitky left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ありがとうございました!

@smikitky smikitky requested review from koba04 and potato4d May 11, 2020 12:24
Copy link
Member

@koba04 koba04 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@SeiyaTAKAHASHI ありがとうございます!1点コメントしたので確認お願いします!

content/blog/2020-02-26-react-v16.13.0.md Outdated Show resolved Hide resolved
Co-authored-by: Toru Kobayashi <koba0004@gmail.com>
@koba04 koba04 merged commit 67546e4 into reactjs:master May 13, 2020
@koba04
Copy link
Member

koba04 commented May 13, 2020

@SeiyaTAKAHASHI 翻訳ありがとうございました!読みやすかったです!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants