Vue.js を学ぶ際に遭遇する落とし穴

Vue.js を学ぶ際に遭遇する落とし穴

順位は特に決まっていません

最近は生活や愚痴に関するブログばかり投稿しているようです。テクノロジー関係の更新がないと、また怠け者になっていると思われるかもしれません。

よし、じゃあふりを始めます。

クラス void のポイント

これは、ヌル ポインターに似た種類のエラーです。コンソールにエラーは報告されず、見つけるのが非常に困難です。

応答データユーザーアバター

//ユーザーが null の場合、この呼び出しはエラーを報告せず、それ以上実行されません。これは非常にトリッキーです。//アバターを判断したい場合は、次のようにします if (resp.data.user && resp.data.user.avatar) {
 //する...
}

ES6 矢印関数

矢印関数と非矢印関数の間にも大きな違いがある

//通常の無名関数の記述 api()
.then(関数(応答){
 このカウント()
 //これは通常のカウントではなく、未定義になることに注意してください
})


//ES6 矢印関数 api()
.then(応答 => {
 このカウント()
 //ここでは何も問題はありません})

ヴュートファイ

これは、Vue.js 上で実行できる、Google のマテリアル デザイン言語に基づいた UI フレームワークです。

ただ、インストール方法が少し特殊で、プラグインのインストール方法も特殊です。

例えば、vuetifyのダイアログ

'vuetify-dialog' から VuetifyDialog をインポートします。
'./plugins/vuetify' から vuetify をインポートします。

Vue.use(VuetifyDialog, {
 コンテクスト: {
 ヴュートファイ
 }
})

つまり、UI を書くときは、Google 向けにプログラミングする必要があるということです。 (他のバックエンド言語も同様ですが)

vue-cli

新しいプロジェクトを作成する場合、そのプロジェクトは特に大きくありません。

vue-cli を使用して作成することを強くお勧めします。簡単に言えば、これにより b スタイルが向上します。

ナンセンスな話はやめて、絵を見てください

vue プロジェクト名を作成します

ビューUI

vue ui は上記のような視覚化ページを開きます。

次に、vue-cli で作成されたプロジェクトをインポートすると、上の図と同じになります:)

非同期と同期

実は、以前とても馬鹿げた考えを持っていたんです。

ユーザーがフォームを完了すると、すぐにサーバーで検証され、結果が UI 上で更新されます。

ただし、UI を更新するには同期操作が必要です。

私は、axios の非同期操作を同期操作に変える方法を見つけようとし続けました。

以前の jQuery であれば、非常に簡単です。aysnc 属性を変更するだけです。

ただし、リクエストを送信するたびに、ブラウザのコンソールに XHR 同期リクエストは推奨されないというメッセージが表示されます。

なぜでしょうか? ブラウザのページはシングルスレッドであるためです。リクエストが同期されている場合、リクエストごとにページが一定時間停止します。

そこで最終的に、すべてのリクエストを非同期にするための段階的な検証方法に変更しました。

実行と展開

ローカルで開発する場合

serve (または一部のプロジェクトでは dev) を実行すると、ポート番号が開き、ユーザー インターフェイスにアクセスしてほぼリアルタイムで UI を調整できるようになります。

オンラインでデプロイする場合は、まずビルドを実行して、出力ディレクトリに静的ファイルを生成する必要があります。

これらのファイルを次のようにサーバーにデプロイします。

  • nginx
  • キャディー

ここで私が強くお勧めするのは、Golang をベースに開発されたサーバーである caddy です。軽量で導入でき、管理 API が付属しています。Http2 を非常によくサポートし、http3 もサポートしています。

ヒント

ここで紹介しているのは、私が最近始めたプロジェクトの一部です。今後の開発では、さらに多くの問題に遭遇するでしょう。
たとえば、ページ間の更新などです。

それで、もうすぐ次の章が始まります。

これが役に立つことを願っています。

以上が、Vue.js を学習する際に陥りやすい落とし穴の詳細です。Vue.js を学習する際に陥りやすい落とし穴の詳細については、123WORDPRESS.COM 内の他の関連記事もぜひご覧ください。

以下もご興味があるかもしれません:
  • Vue.js フロントエンドフレームワークにおけるイベント処理の概要
  • Vue.js ベースの iView UI フレームワークの非エンジニアリング実践記録 (推奨)
  • Vue.js ユニバーサル アプリケーション フレームワーク - Nuxt.js 入門チュートリアル
  • Vue の詳細な入門ノート
  • Vueのフロントエンドとバックエンドのデータのやり取りと表示を理解する方法
  • Vueの使用に関する深い理解
  • Emberjs による axios 経由でのファイルダウンロード方法
  • Emberjs を使ってシンプルな Todo アプリケーションを作成する
  • Ember.js と Vue.js の詳細な比較

<<:  データベースアカウントのパスワード暗号化の詳細な説明と例

>>:  MySQL での正規表現置換のための replace と regexp の使用法の分析

推薦する

ローカルアイデアアクティベーションサーバーの構築に関する詳細なチュートリアル

序文ブロガーはアイデアIDEを使用しています。アイデア公式が最近サードパーティのアクティベーションサ...

SQL 文で OR と AND を混在させる場合のヒント

現在、このような要件があります。ログインした人がカスタマー サービス担当者である場合、注文は「このカ...

MySQL でテーブル データを削除した後もディスク領域がまだ占有されているのはなぜですか?

目次1.MySQLデータ構造2. テーブルファイルのサイズは変更されておらず、MySQLの設計に関連...

SSL を実装するために nginx を設定する方法の例

環境説明サーバーシステム: Ubuntu 18.04 64ビットnginx: 1.14この記事では主...

TypeScript とは何ですか?

目次1. JavaScriptの問題2. TypeScriptの利点3. TypeScriptの欠点...

幅の比率に応じて高さを変えるCSSを実装するいくつかの方法

[解決策1: パディングの実装]原理:要素の padding の値がパーセンテージの場合、このパーセ...

MYSQL ローカルインストールと問題解決

序文この記事はかなり詳細で、少し面倒です。他のチュートリアル ドキュメントでは多くの手順が省略されて...

JSで実施された機雷掃海プロジェクトの概要

この記事では、JS掃海プロジェクトの概要を参考までに紹介します。具体的な内容は次のとおりです。プロジ...

CentOS7 構成 Alibaba Cloud yum ソースメソッドコード

Centos yumフォルダを開くコマンドcd /etc/yum.repos.d/を入力します。 w...

Ubuntu 18.04にmysql5.7をインストールする

Ubuntu 18.04では参考までにmysql 5.7をインストールします。具体的な内容は以下のと...

Typescript+React でモバイルと PC でシンプルなドラッグ アンド ドロップ効果を実現

この記事では、モバイルとPCで簡単なドラッグアンドドロップ効果を実現するためのTypescript ...

JavaScriptはランダムコードの生成と検証を実現する

JavaScriptでのランダムコードの生成と検証は参考までに。具体的な内容は以下のとおりです。イベ...

Angular CDK を使用してサービスポップアップトーストコンポーネント機能を実装する

目次1. 環境設備2. ToastコンポーネントとToastServiceを作成する2.1 Toas...

MySQL の効率的なクエリの左結合とグループ化 (プラス インデックス)

mysql 効率的なクエリMySQL は、左結合の速度を上げるために group by を犠牲にし...