まず第一に、これはスタックオーバーフローに適していることを私は知っていますが、私は同様の質問が答えられていないのを見ました(2年前のccaからの私自身を含む)
Visual Studio2017でRazorcshtmlを使用して構文の強調表示を有効にするには、何をする必要がありますか?
data-bind属性をどれだけ試しても、特別な強調表示が得られないため、大きなテンプレートでの作業が困難になります
ノックアウトで数週間働いた後、私は最初に言うでしょう:2018年にはノックアウトを使用しないでください。^^しかし、古いプロジェクトでの構文の強調表示には、オプションがある可能性があります。 私はVSを使用していませんが、webstormに存在するものと同様のオプションがあるはずです。 そこでは「言語インジェクション」と呼ばれ、xml属性data-bind
とparams
にwindow["dummy_var"] = {
を付け、その後に}
を付けることができます。
ただし、これでは、コード補完機能の欠如や優れた単体テストを実行できないことは修正されません。 ^^
少なくとも2015年以降、VisualStudioで機能するコードハイライトを実際に取得したことはありません。 特にTypescriptコンパイラに基づく新しいJavascript言語サービスが導入されたため、この機能は黙って削除されたのではないかと思います。 私はあなたがそれと一緒に暮らす必要があると思います。
ノックアウトで数週間働いた後、私は最初に言うでしょう:2018年にはノックアウトを使用しないでください。
どうして? Reactほど暑くないから?
「コード補完機能の欠如と優れた単体テストを実行できない」ためです。 テンプレートシステムはすべてを壊します。 そして、はい、JSXを数か月使用した後、バックグラウンドで魔法の神秘的な肉を実行する追加のタグを使用したhtmlよりもはるかに優れたソリューションであると確信しています。 ^^そして、SSR、HMRのように完全に欠けている機能がいくつかあります。
M $ .netのバックグラウンドを持つ多くの人々が、このフレームワークが2018年に優れたソリューションであると考える理由がわかりません。ノックアウトを必須にする機能は1つもありませんでした。 ^^
しかし、誰が気にします。 ただ言ってください^^
コードの完全な機能の欠如は、より良いはずです。私はそのエディターを使用していないので、その問題に遭遇していません。 しかし、JSXが「優れたユニットテストを実行することは不可能」であるユニットテストを可能にするという前提で、JSXが「優れたユニットテスト」を実行する唯一の方法であると考えるなら、JSXファンボイズムに苦しんでいると思います。 このレポとTKOレポは、テストケースの管理で素晴らしい仕事をしたと思います。
ノックアウトの優れた機能の1つとして、オブザーバブルと依存関係の追跡が表示されないことに驚いています。 また、外部プラグインによって簡単に変更できることもわかります。コードベースは長持ちするように構築されているため、メジャーアップデートは必要ありませんが、拡張性が高いため、コミュニティから新しい機能が毎日開発されています。 ここでトロールに餌をやるのは申し訳ありませんが(スレッドをハイジャックした後でも)、ノックアウトに「必須」となる機能は1つもないと言うのは、単に不誠実です。
コード補完機能の欠如
それは残念なことですが、ノックアウトのせいではありません。 考えられる回避策には、ソースコードでのバインディングの宣言が含まれます。 しかし、プレーンなJavascriptを使用することを提案しているので、とにかく適切なコードの完成についてはあまり気にしないと思います。
ビューモデルのバインディングのようなJSXも開発することが不可能ではないことを想像できます。これにより、コードの完成がより簡単になります。
優れた単体テストを実行できない
ビューをビューモデルから分離し、ビューモデルをコレクションの単純な入力/出力プロパティとして個別にテストできるため、ko.jsプロジェクトの単体テストをより適切に行うことができると思います。
そして、SSR、HMRのように完全に欠けているいくつかの機能があります
HMRはノックアウトSPAに組み込むのは簡単です。例として、私のプロジェクトの1つを確認してください。 SSRはtkoIIRCのために取り組んでいます。
バックグラウンドで魔法の神秘的な肉を行う追加の
タグ属性を持つhtml
さて、JSXはバックグラウンドで多くの魔法を行う完全な非HTMLタグではありませんか?
私は少しの間しようとしましたが、それはezの仕事ではないことがわかりました。 そうすると、プロジェクト全体をリファクタリングする作業は、reactエコシステムに切り替えるのと同じになります。
ええと、JSXはJavascriptです。 HTMLをJavascriptに変換してからHTMLにレンダリングし直したり、jqueryでDOMツリーを操作したりする代わりに、JSXをレンダリングするだけで済みます(100%真ではありませんが、ほとんどの場合)。 単体テスト内でJSXオブジェクトを操作する方法が好きです。
HMRのソースを見ていきます。 ヒントをありがとう:)
VS 2017かみそりのハイライトとインテリセンスの更新はありますか?
私が理解していることから、vs 2017は、インテリンスの仕組みを
///
2017年と比較して新しいJavaScript言語サービスを有効にすると、htmlファイルのデータバインド属性のインテリセンスが無効になるようです。 変更を有効にするには、VSを再起動する必要があります。
ただし、2つの異なるマシンで、新しいjavascript言語サービスを無効にすると、データバインド属性を編集しようとすると、htmlエディターがスローされてエラーが発生しました。
別の方法として、ノックアウトインテリセンスにVSコードを使用できる場合がありますhttps://stackoverflow.com/questions/41636473/html-knockoutjs-intellisense-in-visual-studio-code
最も参考になるコメント
コードの完全な機能の欠如は、より良いはずです。私はそのエディターを使用していないので、その問題に遭遇していません。 しかし、JSXが「優れたユニットテストを実行することは不可能」であるユニットテストを可能にするという前提で、JSXが「優れたユニットテスト」を実行する唯一の方法であると考えるなら、JSXファンボイズムに苦しんでいると思います。 このレポとTKOレポは、テストケースの管理で素晴らしい仕事をしたと思います。
ノックアウトの優れた機能の1つとして、オブザーバブルと依存関係の追跡が表示されないことに驚いています。 また、外部プラグインによって簡単に変更できることもわかります。コードベースは長持ちするように構築されているため、メジャーアップデートは必要ありませんが、拡張性が高いため、コミュニティから新しい機能が毎日開発されています。 ここでトロールに餌をやるのは申し訳ありませんが(スレッドをハイジャックした後でも)、ノックアウトに「必須」となる機能は1つもないと言うのは、単に不誠実です。