Vue.js の日本語ガイドに PR したら英語の勉強になった

v-for に key 属性を指定するときとしないときの違いの一例 - kntmr-blog

これの余談なんですが、v-forkey の仕様を確認しようと思って公式ガイドを読んでたら、なんとなく誤訳かなと思われるものを見つけたので Pull Request を投げてみました。

当初の翻訳はこう。

可能なときはいつでも v-forkey を与えることが推奨されます。これは、繰り返される DOM の内容が単純でない、または性能向上を標準の動作に意図的に頼っていない場合に限ります。

で、原文はこちら。

It is recommended to provide a key with v-for whenever possible, unless the iterated DOM content is simple, or you are intentionally relying on the default behavior for performance gains.

最初、この unless が接続詞なのかなと思って、それに続く the iterated DOM content is simpleyou are intentionally relying on the default behavior for performance gains を否定してこれらを 除く ものと解釈しました。

可能なときはいつでも v-forkey を与えることが推奨されます。ただし、繰り返される DOM の内容が単純でない、または性能向上のための標準の動作に意図的に頼らない場合を除きます。

が、この解釈は誤っているとコメントがあり、再度 Pull Request を投げることに。あと、前後の文章を入れ替えてみた。

繰り返される DOM の内容が単純でない場合、または性能向上のための標準の動作に意図的に頼る場合を除いて、可能なときはいつでも v-forkey を与えることが推奨されます。

ただ、これも意味的には誤っていて、最終的にはこの Pull Request で修正していただきました。

繰り返される DOM の内容が単純な場合や、性能向上のために標準の動作に意図的に頼る場合を除いて、可能なときはいつでも v-forkey を与えることが推奨されます。

ようするに、この unless は接続詞ではなく、単純に the iterated DOM content is simple を否定するための前置詞なんですね。確かに DOM が複雑というか処理が重くなりそうなら key を付けずに性能向上を図る方がいいのかもしれません。

結局、話をややこしくするだけになってしまって申し訳ない感じに...。一応、当初の内容から変わるきっかけにはなったので少しは役に立っただろうか。いろいろと勉強になりました。