React:「don't fuck it up like Google did with Anglar」
2596 ワード
Reactコア開発者sebmarkbage大神はGitHubでissuesを開いて、コミュニティのJSX 2.0に対する提案を聞きに来ました.
いったい何が増えましたか?菗4-属性とテキスト中のHTML変換フラグを変換しない 榕21-属性サポート表式 菗23-渡参時に使用するオブジェクトの簡略表現 菗25、菗51、膌64-属性は単一の記号または小さい括弧がある場合、大括弧は を省略することができます.
また、次のように含まれています.菗39-暗黙的ド表現 菗35-Drop implicit text content and curlies as children. 菗66-カスタム属性名前空間 Reactを使った開発者はすべて知っていますが、Reactの理念はAll In Javascriptで、徹底的に底を突くjavascript中心論です.
以前は私たちは直接にjavascriptをHTMLに書いていましたが、その後はこのようにメンテナンスに役立たないと思いました.プログラミング領域の中の「低結合」の理念にも合致しないです.先端を整理し直します.HTMLはデータで、CSSは表現で、javascriptは行為です.ですから、私たちはjavascriptを別々のファイルに書いて、HTMLで引用します.
しかし、facebookのエンジニアはHTMLにjavascriptを書かせないだけでなく、javascriptにHTMLを書いています.またfacebookのエンジニアはそれで止まっていません.彼らはReact文書でjavascriptに書いただけではなく、cssもjavascriptに書いたと開発者に教えました.
個人的にはall in javascriptが好きです.原因は後で文章を書いて討論します.これは今日の重点ではありません.
今日の話題に入ります.
JSXでは条件文は書けません.JSの三目演算子しか使えません.ある人(@mohsen 1)が提案しているので、JSXのためにng-ifのような機能を追加したり、Anglar 2の*ifを直接使ってもいいです.
Something like Anglar ng-inf would be nice to have in JSX.Making rendeng of an element conditional is not easure in JSX.Maybone adopt Anglar 2*if
この文を書く時、この提案は32の賛成と324の反対をもらいました.(私も反対しました.)
この問題に対しては、@lackerも別の解決策に言及し、ifタグを追加しました.例えば、
その後、@kevinsimperは彼らの問題に答えました.問題を解決する方法はJSXのラベルではなく、javascriptの短絡論理演算子を使って、もう一度ReactのJS中心論を表しました.
@mohsen 1「It's just JavaScript、not a template langer」->no need to replicate JS functies with custom sntax.That is the mann benefit of JSX IMO、seriousys soreplicat the this the with joft
JSXはただjavascript文法の拡張であり、テンプレート言語ではない.いくらJSXカスタム文法を使っても、このメリットに影響を与えるべきではなく、たとえ最終的に実現してもおかしく見える.(元のIMOはIn My Opinionという意味ですか?)
その後の議論は依然として激しく、素晴らしいものでした.
Don't fuck it up like Google did with Anglar 2、keep the thing comptible with older versions…
彼のお母さんのGoogleがAnglar 2を進級するようなことが要らないで、古いバージョンの互換性を維持することができますか?
@mstijakはコメントの中でもう一つの属性バインディングの書き方を提出しました.
後の討論はだんだん穏やかになりました.この時@xpages beastさんは言いました.
原文は素晴らしいです.興味がある人はジーバスに行って、JSX 2.0・Issueを見てください.
私の公衆番号に注目してください.先端文章に注目してください.
いったい何が増えましたか?
また、次のように含まれています.
以前は私たちは直接にjavascriptをHTMLに書いていましたが、その後はこのようにメンテナンスに役立たないと思いました.プログラミング領域の中の「低結合」の理念にも合致しないです.先端を整理し直します.HTMLはデータで、CSSは表現で、javascriptは行為です.ですから、私たちはjavascriptを別々のファイルに書いて、HTMLで引用します.
しかし、facebookのエンジニアはHTMLにjavascriptを書かせないだけでなく、javascriptにHTMLを書いています.またfacebookのエンジニアはそれで止まっていません.彼らはReact文書でjavascriptに書いただけではなく、cssもjavascriptに書いたと開発者に教えました.
個人的にはall in javascriptが好きです.原因は後で文章を書いて討論します.これは今日の重点ではありません.
今日の話題に入ります.
JSXでは条件文は書けません.JSの三目演算子しか使えません.ある人(@mohsen 1)が提案しているので、JSXのためにng-ifのような機能を追加したり、Anglar 2の*ifを直接使ってもいいです.
Something like Anglar ng-inf would be nice to have in JSX.Making rendeng of an element conditional is not easure in JSX.Maybone adopt Anglar 2*if
この文を書く時、この提案は32の賛成と324の反対をもらいました.(私も反対しました.)
この問題に対しては、@lackerも別の解決策に言及し、ifタグを追加しました.例えば、
This part only gets shown if myCondition is true
このような提案は楽観的ではありません.(私も反対しました.)その後、@kevinsimperは彼らの問題に答えました.問題を解決する方法はJSXのラベルではなく、javascriptの短絡論理演算子を使って、もう一度ReactのJS中心論を表しました.
{ somethingTrue &&
Will only show if somethingTrue is true
}
@bjrmatosの返事は大勢の喝采を博しました.@mohsen 1「It's just JavaScript、not a template langer」->no need to replicate JS functies with custom sntax.That is the mann benefit of JSX IMO、seriousys soreplicat the this the with joft
JSXはただjavascript文法の拡張であり、テンプレート言語ではない.いくらJSXカスタム文法を使っても、このメリットに影響を与えるべきではなく、たとえ最終的に実現してもおかしく見える.(元のIMOはIn My Opinionという意味ですか?)
その後の議論は依然として激しく、素晴らしいものでした.
Don't fuck it up like Google did with Anglar 2、keep the thing comptible with older versions…
彼のお母さんのGoogleがAnglar 2を進級するようなことが要らないで、古いバージョンの互換性を維持することができますか?
@mstijakはコメントの中でもう一つの属性バインディングの書き方を提出しました.
神様よやっとJSXはAnglarと違って、いきなりvueになりました.後の討論はだんだん穏やかになりました.この時@xpages beastさんは言いました.
JavaServer Faces (JSF) Expression language has stood the test of time, JSX is a very similar new kid on the block
行きますアングラーを議論して、Vueを討論して、jQueryを討論してもいいです.このJSFはどんな幽霊ですか?原文は素晴らしいです.興味がある人はジーバスに行って、JSX 2.0・Issueを見てください.
私の公衆番号に注目してください.先端文章に注目してください.