Vue モバイル端末でのジェスチャ スライド リターンの解決策
モバイル デバイスの普及に伴い、ページ間の切り替えにジェスチャー スライドを使用することに慣れているユーザーが増えています。 Vue 開発では、Vue Router に基づくページ切り替え方式では、プッシュ方式と置換方式のルーティングが一般的に使用されます。ただし、この方法で実装されたページ切り替えでは、モバイル ジェスチャがスライドして戻るときに特定の問題が発生します。この記事では、Vue 開発におけるモバイル ジェスチャのスライディング リターンの問題を解決する方法を紹介します。
モバイル端末でジェスチャがスライドして戻る問題を解決するには、Vue プラグイン vue-touch および vue-router プラグインを使用する必要があります。 vue-touch プラグインは、Vue によるモバイル ジェスチャ操作のカプセル化であり、左スワイプ、右スワイプなどのモバイル デバイス上のジェスチャ操作を認識できます。 vue-router プラグインは、ページ ルーティング管理のために Vue によって公式に提供されているプラグインです。
まず、vue-touch プラグインと vue-router プラグインをインストールする必要があります。これは、npm コマンドを通じてインストールできます:
npm install vue-touch vue-router --save
プラグインをインストールした後、これら 2 つのプラグインをメイン プログラム ファイルにインポートして登録する必要があります:
import Vue from 'vue'; import VueTouch from 'vue-touch'; import VueRouter from 'vue-router'; Vue.use(VueTouch); Vue.use(VueRouter);
次に、 Vue Router のルーティング設定では、ページが切り替わったときにユーザーがジェスチャーでスライドして戻るか、戻るボタンをクリックして戻るかを決定するグローバル フロント ガードを追加する必要があります。グローバルフロントガードでは、ルートの進入方向を判断して、ジェスチャーでスライドして戻るか、戻るボタンをクリックして戻るかを決定できます。
const router = new VueRouter({ routes: [ // 路由配置 ] }); router.beforeEach((to, from, next) => { const direction = router.app.$options.direction || ''; if (direction === 'back') { // 手势滑动返回 router.app.$options.direction = ''; router.app.$options.transition = 'slide-right'; } else { // 点击返回按钮返回 router.app.$options.transition = 'slide-left'; window.history.pushState(null, '', location.href); } next(); });
グローバルフロントガードでは、まず、ルートの進入方向はジェスチャーです。戻るにはスライド(方向は「戻る」)するか、戻るボタンをクリックします。ジェスチャー スライドが戻った場合は、方向の値を空にリセットし、ページ切り替えアニメーションを右から左にスライドするように設定します。戻るボタンをクリックして戻る場合、ページ切り替えアニメーションを左から右にスライドするように設定し、window.history.pushState メソッドを通じて戻るボタンのクリックをシミュレートします。
最後に、Vue の各ページ コンポーネントで、vue-touch プラグインを使用してモバイル デバイスのジェスチャ スライド イベントをリッスンし、ジェスチャ スライドが戻るか次のジェスチャにスライドするかを判断する必要があります。スライド距離に基づいてページが表示されます。ページ コンポーネントでは、vue-touch プラグインのスワイプ メソッドを使用して、左右のスライド イベントをリッスンできます。
export default { mounted() { this.$watch('$options.transition', (to, from) => { if (to === 'slide-right') { this.go(-1); } else if (to === 'slide-left') { this.go(1); } }); }, methods: { go(delta) { const distance = window.innerWidth * 0.3; // 适应不同设备的滑动距离 if (delta === -1 && this.$route.meta.index > 1) { // 手势滑动返回到上一页面 this.$router.back(); } else if (delta === 1 && this.$route.meta.index < this.$router.options.routes.length) { // 手势滑动到下一页面 this.$router.push(this.$router.options.routes[this.$route.meta.index + 1]); } } } };
ページ コンポーネントのマウントされたライフ サイクル関数では、 $watch メソッドは、ページの切り替えアニメーションの変更をリッスンします。ページ切り替えアニメーションが右から左へのスライドに変化したら、 go メソッドを呼び出してジェスチャーのスライドリターンを実行します。ページ切り替えアニメーションが左から右へのスライドに変わると、 go メソッドを呼び出して次のページへのジェスチャ スライドを実行します。
go メソッドでは、まずモバイル デバイスのさまざまな画面のスライド距離を計算します。次に、スライドの方向に基づいて、ジェスチャが後ろにスライドするか、次のページにスライドするかを決定します。それがジェスチャー スライディング リターンであり、現在のページのインデックスが 1 より大きい場合、$router.back メソッドを呼び出してジェスチャー スライディング リターンを実行します。ジェスチャが次のページにスライドするために使用され、現在のページのインデックスがルーティング設定内のページ数より小さい場合、$router.push メソッドを呼び出して、次のページにスライドするジェスチャを実行します。
上記の操作により、Vue 開発におけるモバイル ジェスチャのスライディング リターンの問題を効果的に解決できます。 vue-touch プラグインと vue-router プラグインを使用すると、モバイル デバイスのジェスチャ スライド イベントを簡単に監視し、スライド距離に基づいてジェスチャ スライドが戻るか次のページにスライドするかを判断できます。これにより、モバイル端末でのユーザーエクスペリエンスが向上し、ページ切り替えがよりスムーズになります。
以上がVue モバイル端末でのジェスチャ スライド リターンの解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Vue アプリケーションで vue-router エラー「NavigationDuplicated:Avoidedredundantnavigationtocurrentlocation」が発生しました – 解決方法は? Vue.js は、高速で柔軟な JavaScript フレームワークとして、フロントエンド アプリケーション開発でますます人気が高まっています。 VueRouter は、ルーティング管理に使用される Vue.js のコード ライブラリです。ただし、場合によっては、

この記事では、Vue ファミリー バケットの Vue-Router について詳しく説明し、ルーティングに関する関連知識について学びます。

Vue と Vue-Router: コンポーネント間でデータを共有するにはどうすればよいですか?はじめに: Vue は、ユーザー インターフェイスを構築するための人気のある JavaScript フレームワークです。 Vue-Router は Vue の公式ルーティング マネージャーであり、シングルページ アプリケーションの実装に使用されます。 Vue アプリケーションでは、コンポーネントはユーザー インターフェイスを構築するための基本単位です。多くの場合、異なるコンポーネント間でデータを共有する必要があります。この記事では、Vue と Vue-Router でデータ共有を実現するのに役立ついくつかの方法を紹介します。

Vue アプリケーションで vue-router を使用すると、「エラー: 現在の場所への冗長ナビゲーションを回避しました」というエラー メッセージが表示されることがあります。このエラー メッセージは、「現在の場所への冗長なナビゲーションを回避する」ことを意味し、通常は同じリンクを繰り返しクリックするか、同じルーティング パスを使用することによって発生します。では、この問題をどうやって解決すればよいでしょうか?ルーターを定義するときは正確な修飾子を使用してください

Vue は、開発者が効率的で再利用可能な Web アプリケーションを迅速に構築できるようにする人気のフロントエンド フレームワークです。 Vue-router は、開発者がアプリケーションのルーティングとナビゲーションを簡単に管理できるようにする Vue フレームワークのプラグインです。ただし、Vue-router を使用すると、「エラー:無効なルートコンポーネント:xxx」という一般的なエラーが発生することがあります。この記事では、このエラーの原因と解決策について説明します。理由はヴにある

vue-router の使用は、Vue アプリケーションでルーティング制御を実装する一般的な方法です。ただし、vue-router を使用すると、非同期コンポーネントの読み込みエラーが原因で、「エラー: Failedtoresolveasynccomponent:xxx」というエラーが発生することがあります。この記事では、この問題を調査し、解決策を提供します。非同期コンポーネントの読み込みの原理を理解する Vue では、コンポーネントを同期または非同期で作成できます。

Vue-Router: ルーティング メタ情報を使用してルートを管理するにはどうすればよいですか?はじめに: Vue-Router は Vue.js の公式ルーティング マネージャーであり、シングルページ アプリケーション (SPA) を迅速に構築するのに役立ちます。一般的なルーティング機能に加えて、Vue-Router はルーティングを管理および制御するためのルーティング メタ情報の使用もサポートしています。ルーティング メタ情報はルートに付加できるカスタム属性であり、特別なロジックや権限制御の実装に役立ちます。 1. ルーティングメタ情報とは何ですか?ルーティングメタ情報は、

Vue エラーの解決: ルート ジャンプに vue-router を正しく使用できません Vue を使用してフロントエンド プロジェクトを開発するとき、ページ ルーティング ジャンプに vue-router をよく使用します。ただし、vue-router を使用するときにエラーが発生し、ルートが正常にジャンプできない場合があります。この記事では、この質問に答え、対応する解決策を示します。まず、vue-router を使用する前に、vue-rou が正しくインストールされていることを確認する必要があります。
