vue N​​progress のプログレスバー機能を実装する際の一般的な問題

vue N​​progress のプログレスバー機能を実装する際の一般的な問題

NProgress は、ページがジャンプしたときにブラウザの上部に表示される進行状況バーです。公式ウェブサイト: http://ricostacruz.com/nprogress/
github: https://github.com/rstacruz/nprogress

下の図の上部にあるプログレス バーは非常に一般的であり、 vueプロジェクトには対応するプラグインがあります。 Nprogress

ここに画像の説明を挿入

Nprogressプログレスバーの使用方法は次のとおりです。

1. nprogressプラグインをインストールする

npm install --save nprogress
ここでの--save -sと同等であり、プラグインの名前とバージョン番号をpackage.jsonファイル内のdependenciesに保存することに注意してください。これにより、他のユーザーがプロジェクトをクローンしたときに、 npm installを通じてすべてのプラグインをnode_modulesにダウンロードできるようになります。

2. nprogressプラグインの使用

ここでのプログレスバーは主にページルーティングのジャンプ処理で使用されるため、 router/index.jsで直接使用できます。

ルートがジャンプする前にプログレスバーの読み込みを開始し、ルートがジャンプした後にプログレスバーの読み込みを終了します。

router/index.jsファイルの内容は次のとおりです。

「vue」からVueをインポートします。
「vue-router」から VueRouter をインポートします。
「@/store」からストアをインポートします。
HomeLayout フォームを "@/views/home/layout" としてインポートします。
「nprogress」からNProgressをインポートします。
「./modules/userCenter」からuserCenterをインポートします。
'nprogress/nprogress.css' をインポートします
Vue.use(VueRouter);
NProgress.inc(0.2);
NProgress.configure({easing:'ease',speed:2000,showSpinner:false,trickle:false})
const ルート = [{
	パス:"/"、
	名前:"インデックス",
	リダイレクト:"/index"
},{
	パス:"/index",
	名前:'インデックス',
	コンポーネント:()=>import ('@/views/home/index.vue')、
	meta:{title:'ホームページ'}
},{
	パス:'/home',
	名前:'ホーム',
	コンポーネント:()=>import('@/views/home/main'),
	meta:{title:'ホームページ'}
},{
	パス:'/login',
	名前:'ログイン',
	コンポーネント:()=>import ('@/views/login')、
	meta:{title:'ログイン'}
},{
	パス:'/register',
	名前:'登録',
	コンポーネント:()=>import('@/views/register'),
	meta:{title:'登録'}
},{
	パス:'/404',
	名前:'404',
	コンポーネント:()=>import('@/views/errorPage')
},{
	パス:'*'、
	リダイレクト:'/404'
}]
const ルーター = 新しい VueRouter({
	モード: '履歴',
	ルート
})
//ルーティング前にインターセプト router.beforeEach((to,from,next)=>{
	//ページがジャンプする前に、プログレス バーを開始します NProgress.start();
	// いくつかの傍受操作、ログイン権限など...
	const token = window.localStorage.getItem('token'); //localstorageからキャッシュを取得 if(to.meta.title){
		document.title = to.meta.title; //ブラウザタブのタイトルをページのタイトルに変更します
	}
	store.commit('changeCurrentPage',to.path);
	定数reg = /[a-zA-Z]+\/$/;
	//検証を必要としないルートに直接リダイレクトする if(!to.meta.requireAuth){
		if (reg.test(to.path)){
			次は、to.path.replace(reg,'') です。
			戻る;
		}
		次();
		戻る
	}
	if(token&&to.name!=='インデックス'){
		// すでにログインしており、リダイレクトされるページはログインページではありません if(reg.test(to.path)){
			次は、to.path.replace(reg,'') です。
			戻る;
		}
		next();//直接ジャンプできます }else if(token && to.name == 'Index'){
		//ログインしていてジャンプしたいページはログインページです if(reg.test(to.path)){
			次は、to.path.replace(reg,'') です。
			戻る
		}
		next('/home');//ホームページに直接ジャンプします }else if(!token && to.name !='Index'){
		//ログインしておらず、ジャンプ先のページがログインページではない next('/index');//ログインページにジャンプ }else{
		if (reg.test(to.path)){
			次は、to.path.replace(reg,'') です。
			戻る;
		}
		次()
	}
})
ルータ.afterEach(to=>{
	NProgress.done();
	ウィンドウを0,0にスクロールします。
})
//現在のページ メニューの繰り返しクリックを処理し、警告を発行します。const originalPush = VueRouter.prototype.push;
VueRouter.prototype.push = 関数push(location){
	元のPush.call(this,location).catch(err=>err) を返します。
}
デフォルトルーターをエクスポートします。

上記の要点は次のとおりです。

プラグインと対応するcssを導入する

ここに画像の説明を挿入

nprogress構成パラメータ

ここに画像の説明を挿入

3. router.beforeEachがルートジャンプ前にインターセプトすると、読み込みプログレスバーが表示されます。

ここに画像の説明を挿入

4. router.afterEachルートジャンプが終了したら、プログレスバーを閉じます。

ここに画像の説明を挿入

3. スタイルを変更するnprogressプラグイン

App.vueファイルのstyleで、次のコードを追加してプログレスバーの色を変更します。

#nprogress .bar {
  背景: #f90 !important; //カスタムカラー}

これで、vue N​​progress プログレスバー機能の実装に関するこの記事は終了です。vue N​​progress プログレスバーの関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue で nprogress ページ読み込みプログレスバーを実装する方法
  • Vueはルーティングプログレスバーをロードするためにnprogressを使用します
  • Vueはnprogressを使用してプログレスバーを実装します
  • Vueはnprogressを設定してページ上部にプログレスバーを実装します。
  • Vue で NProgress プログレスバーを使用する方法
  • Vue プロジェクトで Nprogress.js プログレス バーを使用する方法

<<:  SELINUXの動作原理の詳細な説明

>>:  MySQL 8.0.17 インストール グラフィック チュートリアル

推薦する

Dockerでの接続例外中のエラーを解決する

Docker を初めて使い始めると、通常とは異なる問題に遭遇して、必然的に混乱してしまいます。大丈夫...

Mac 環境での Nginx 構成とローカル静的リソースへのアクセスの実装

ローカル開発では、直接アクセスできない静的ファイル リソースのデバッグが必要になる場合があります。こ...

この記事では、イベント委任を使用してJavaScriptメッセージボード機能を実装する方法について説明します。

イベント委任を使用してメッセージ ボード機能を実装します。 <!DOCTYPE html>...

Ubuntuはカーネルモジュールをコンパイルし、その内容はシステムログに反映されます。

目次1.Linuxログインインターフェース2. コードを書く3. Makefileを書く4. コンパ...

MySQLでホワイトリストアクセスを設定する方法

MySQLでホワイトリストアクセスを設定する手順1. ログイン mysql -uroot -pmys...

Jmeterはデータベースプロセスダイアグラムに接続します

1. MySQL jdbc ドライバー (mysql-connector-java-5.1.28.j...

Dockerコマンドの学習を1つの記事にまとめる

目次導入ミラーリポジトリログイン引く押す検索ローカル画像管理画像rmiタグ建てる歴史保存負荷輸入コン...

onfocus="this.blur()" は視覚障害のあるウェブマスターに嫌われている

スクリーン リーダー ソフトウェアの操作ページについて話しているとき、彼はフロントエンドの学生たちに...

Vue コンポーネントでのアンチシェイクとスロットリングの使用例の分析

入力ボックスへのユーザー入力、ウィンドウのサイズ変更、スクロール、Intersection Obse...

CocosCreator で物理エンジン ジョイントを使用する方法

目次マウスジョイント マウスジョイント距離ジョイント距離ジョイントモータージョイント直動ジョイント変...

Ubuntu システムにおける Mysql ERROR 1045 (28000): ユーザー root@localhost へのアクセスが拒否される問題の解決方法

最初の方法: skip-grant-tables: 非常に便利なmysql起動パラメータ非常に便利な...

Linux での Firewalld の高度な設定の使用に関する詳細な説明

IPマスカレードとポート転送Firewalldは2種類のネットワークアドレス変換をサポートしています...

Windows および Linux で tomcat9 を介して war パッケージを手動で展開する方法

Windows 環境と Linux 環境では結果が異なります。ウィンドウズステップ 1: Maven...

Vue プロジェクト @change 複数のパラメータを使用して複数のイベントを渡す

まず、変更イベントは 1 つだけです。 changelevel() //値を選択選択を変更して行の値...