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 インストール グラフィック チュートリアル

推薦する

Reactは無限ループスクロール情報を実装する

この記事では、無限ループスクロールを実現するためのReactの具体的なコードを参考までに紹介します。...

Docker で PostgreSQL を実行し、いくつかの接続ツールを推奨する

1 はじめに PostgreSQL は、非常に充実した機能を備えたフリーソフトウェアのオブジェクトリ...

MySQL 挿入時間の 8 時間の違いの問題の解決方法

MySQL挿入時の8時間の時差の問題を解決する通常、jdbc の URL にはいくつかのパラメータを...

docker を使って sonarqube を構築する方法

目次1. Dockerをインストールする2. ソナーイメージをインストールする3. ソナーを使ってコ...

ウェブページのコピー防止機能の実装方法(クラッキング手法付き)

ソース ファイルを右クリックすると、次のコードが見つかります。 1. CSSを使用してFirefox...

シンプルな虫眼鏡効果を実現するJavaScript

大きな箱の中に写真があります。マウスをその上に置くと、半透明のマスク レイヤーが表示されます。マウス...

リバースプロキシ設定を実装するためのユニバーサルnginxインターフェース

1. プロキシサーバーとは何ですか?プロキシ サーバーは、クライアントが要求を送信すると、それを直接...

MySQL グリーンバージョン設定コードと 1067 エラーの詳細

MySQL グリーンバージョン設定コードと 1067 エラーMySQL エンコーディングを表示 &#...

React useEffect の理解と使用

目次繰り返しレンダリングループを避ける副作用の除去についてReact16.8 の新しい useEff...

CSS フレックスベースのテキストオーバーフロー問題の解決方法

重要でないflex-basisテキストオーバーフローに省略記号を追加するという小さな機能に多くの問題...

初心者がHTMLタグを学ぶ(3)

HTML に触れる初心者は、いくつかの HTML タグを学びます。関連記事:初心者が学ぶ HTML...

MySQLデータベースにパスワードを入力した後にフラッシュバックする問題の解決策

パスワード入力後にMySQLデータベースがクラッシュする問題と解決策1 ケースの説明最近、基本的な機...

vue3 のストアを使用してスクロール位置を記録する例

目次全体的な効果コンテナのスクロールイベントをリッスンするストア内の構成ページが戻るときのスクロール...

Nginxでネットワーク分離を解決した実践記録を詳しく解説

必要最近、Node オンライン サービスを移行する必要があったため、2 つの新しいオンライン サーバ...

MySQLデータベースの名前を高速かつ安全に変更する方法(3種類)

目次MySQLデータベースの名前を変更する方法最初の方法: データベースの名前を変更することは非推奨...