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 と Threejs を使用して VR パノラマ プロジェクトを作成する詳細なプロセス

最近、 Three.jsでReactを使用して、720 度のパノラマ写真を閲覧できるプロジェクトを構...

MySQL 8.0 の新しいリレーショナル データベース機能の詳細な説明

序文MySQL 8.0 の最新バージョンは 8.0.4 rc であり、正式版は近日中にリリースされる...

ページキャッシュを無効にするいくつかの方法を共有する

本日、開発中に、顧客からページをキャッシュしないように要求される方法に遭遇しました。調べたところ、ペ...

HTML ul および li タグを使用して画像を表示するサンプル コード

以下のコードをDreamweaverのコードエリアにコピーすると、プレビュー時に以下の画像が表示され...

H5でクリックされたときにaタグの背景色をキャンセルする方法

1. モバイル端末でクリックされたときにタグの青色を解除する { -webkit-tap-highl...

mysql サブクエリと結合テーブルの詳細

目次1. サブクエリとは何ですか? 2. 自己結合3. 自然な結合4. 外部接続1. サブクエリとは...

Vue-cli を使用して Vue プロジェクトを構築する手順の詳細な説明

まず、Vue-cli をインストールする必要があります。 npm インストール -g vue-cli...

Vue開発ウェブサイトSEO最適化方法の詳細な説明

ページデータの表示には Vue などの js のデータバインディング機構が使用されるため、クローラー...

MySQLオンラインログライブラリの移行例

最近の事例をお話ししましょう。オンライン Alibaba Cloud RDS 上のゲーム ログ ライ...

LinuxカーネルマクロContainer_Ofの詳細な説明

目次1. 構造体はメモリにどのように保存されますか? 2. container_ofマクロ3. 型4...

DockerでMongoDBコンテナをデプロイする方法

目次Dockerとは展開する1. イメージをプルする2. 画像を表示する3. コンテナを実行する4....

CentOS 8 に Docker をインストールする詳細なチュートリアル

1. 以前のバージョン yum 削除 docker docker-client docker-cli...

MySQLにおける時刻日付型と文字列型の選択について

目次1. DATETIMEとTIMESTAMPの使用1. 類似点2. 相違点3. 選択2. varc...

MySQLステートメントの記述と実行順序を理解するだけです

MySQL ステートメントの書き込み順序と実行順序には大きな違いがあります。書き順、mysql の一...

MySQLの自動増分IDについて知っておくべきこと

はじめに: MySQL を使用してテーブルを作成する場合、通常は自動インクリメント フィールド (A...