序文 - Vue ルーティングVue-router は、Vue.js と深く統合された、Vue の公式ルーティング プラグインです。 [SPA ウェブページ]フロントエンド レンダリングにより、単一ページのリッチ アプリケーション SPA ページを実装できます。ウェブページ全体には 1 つの HTML ページのみがあり、静的リソース サーバーには 1 セットの HTML と CSS、または 1 セットの JS のみが含まれます。 [リッチアプリケーション]は、新しいリクエストURLをサーバーに送信することで実現されます。サーバーからリソースを取得した後、フロントエンドルーターはページの対応するコンポーネントにリソースを割り当てる役割を担います。 [シングルページ]の実装では、フロントエンドでURLを変更する必要があります。フロントエンドルーティングが表示された後、フロントエンドルーティングはルーターの監視に従ってマッピング関係から変更が必要な部分を見つけ、新しいリソースを抽出して割り当て、変更が必要な部分のみを再レンダリングします。 1. 最も基本的なルーティング構成まず、vue-router をインストールする必要がありますが、インストール方法は説明しません… それを開いて、ルート配列で構成します。ページのルートはこの配列内のオブジェクトにグループ化され、URL が変更にどのように反応するかに対応するパスやコンポーネントなどのプロパティが含まれます。 1. router/index.jsを設定する// これは router/index.js にあります。すべて; 'vue-router' から {createRouter、createWebHistory} をインポートします。 '../views/Home.vue' から Home をインポートします。 定数ルート = [ //ここでルーティングを設定します。 ] // router4 では new VueRouter の代わりに createRouter を使用します。 const ルーター = createRouter({ 履歴: createWebHistory(process.env.BASE_URL)、 ルート //ここですべてのページのルーティング構成配列ルートを導入します。 }) デフォルトルーターをエクスポートする //すべてのルーティング設定を含むルータオブジェクトをエクスポートします。 // グローバル使用のために main.js に挿入されます。 コンポーネント属性: 値はページです。このページコントロールは事前に導入する必要があります。 path 属性: コンポーネント属性に対応するページにジャンプするために URL に表示される内容を指定します。 // これは router/index.js にあり、末尾は省略されています。 'vue-router' から {createRouter、createWebHistory} をインポートします。 '../views/Home.vue' から Home をインポートします。 '../views/About.vue' から About をインポートします。 '../views/News.vue' から News をインポートします。 //3 つのページ コントロールを導入します。 定数ルート = [ { パス: '/', /* 初期 URL に対応するページを指定します*/ 名前: 'ホーム'、 コンポーネント: ホーム /* デフォルトのホームページを指定します*/ }, { path: '/about',/* 新しいセグメントが /about*/ の場合にジャンプする URL を指定します 名前: 'About'、 コンポーネント: About /* About へジャンプ */ }, { パス: '/news', /* 新しいセグメントが /news*/ の場合に URL がリダイレクトされることを指定します 名前:「ニュース」、 コンポーネント: ニュース /* ニュースへジャンプ */ }, ] 2. App.vueを構成するURL が異なる文字に変更された場合にリダイレクトする方法はすでに指定しました。次に、URL を独自の方法で変更する方法を検討する必要があります。 世界中で登録された 2 つの新しいタグを紹介します。 <router-link to="URLに追加する文字">XXX</router-link> //<router-link> は <a> としてレンダリングされます。 <ルータービュー /> //これら 2 つを組み合わせて使用する必要があります。 App.vue 内のすべてのページジャンプは、URL を変更することによって <router-link> によって実行されます。 <router-view> は、router-link タグを表示する場所を指定するプレースホルダー タグです。 <!-- これは App.vue にあります --> <テンプレート> <div id="nav"> <!-- to 属性は URL の変更方法を指定します。 --> <!-- Tag 属性は、router-link タグをどの HTML 要素にレンダリングする必要があるかを指定します。 --> <router-link to="/" Tag="a">ホームページ</router-link> | <router-link to="/about" Tag="a">About ページ</router-link> | <router-link to="/news" Tag="a">ニュースページ</router-link> | <router-link to="/login" Tag="a">ログイン</router-link> </div> <ルータービュー /> </テンプレート> 次に、 タグ属性によると、さらに 4 つのタグがあることがわかります。ニュースをクリックして確認してみましょう。 router-linkのto属性の値に応じてURLが変化し、ページが正しくジャンプします。 2. ルーティング遅延読み込み技術異なるルートに対応するコンポーネントを分離し、特定のルートがトリガーされたときにのみ対応するコンポーネントを読み込むと、より効率的になります。サードパーティ、基盤となるサポート、およびパブリック アプリを除き、その他の Vue ページ コンポーネントはサーバー上にあり、いつでもリクエストできるため、ページへの影響は最小限に抑えられます。 実際には、router/index.js 内の各コンポーネントの導入方法を変更するだけです... 定数ルート = [ { パス: '/about', 名前: 'About'、 コンポーネント: () => import('../views/About.vue') //About はここで直接導入され、コンポーネントに割り当てられます。 }, { パス: '/news', 名前:「ニュース」、 コンポーネント: () => import("../views/News.vue") //About はここで直接導入され、コンポーネントに割り当てられます。 }, { パス: '/login', 名前: 'ログイン', コンポーネント: () => import('../views/Login.vue') //About はここで直接導入され、コンポーネントに割り当てられます。 }, ] 3. ネストされたルートサブページにリンクがないわけにはいきませんよね? ユーザーが App.vue を通じてサブページに入ると、他のページに誘導する従属リンクが存在する必要があり、そのためにはルーティング ネスト テクノロジが必要です。 簡単に言うと、親ページのルートに子ページのルートを指定すること、例えばNews.vueのルートにNewsChild-1.vueのルートを指定することです。 //これは縮小された router/index.js です。 定数ルート = [ { パス: '/news', 名前:「ニュース」、 コンポーネント: () => import("../views/News.vue"), 子供たち: [ { パス: 'NewsChild-1', //サブルートの前に「/」と前のレイヤーのパスを付ける必要はありません。 //しかし実際には分析が追加されます。 //指定されたURLが表示された場合 /News/NewsChild-1、 //コンポーネントに対応するページにジャンプします。 コンポーネント: () => import("../views/NewsChild-1"), } ] }, ] これは、ニュース ページの URL が変更されたときに実行されるアクションを指定します。 <!-- これは News.vue です。 --> <テンプレート> <h1>ニュース</h1> // トリガーされると、URL が /News/NewsChild-1 ずつ増加するように指定します。 <router-link to="/News/NewsChild-1">NewsChild-1</router-link> <ルータービュー></ルータービュー> </テンプレート> 次に、レンダリングされたページを見てみましょう。 NewsChild-1のリンクをクリックしてください: router-link の to 属性の値に基づいて、URL は /News/NewsChild-1 になります。 4. 動的ルーティング多くの場合、ページをどこにジャンプさせる必要があるかはプログラムでは判断できません。そのため、ルートを動的に変更できるように、プログラムが必要に応じて自ら決定する必要があります。 1. 動的ルーティング構成簡単に言うと、[追加先のURL]と[パスでリダイレクトするURL]をハードコードする必要はなく、頻繁に変更する必要があるURLの部分をエクスポートデフォルトのデータとv-bindで接続し、データに応じてURLが変化するようにします。 //これはrouter/index.jsにあります 'vue-router' から createRouter、createWebHashHistory をインポートします。 定数ルート = [ { パス: '/'、 名前: 'ホーム'、 コンポーネント: () => import('../views/Home.vue'), }, { //ここでパスの値をハードコードしないでください。 パス: '/user/:userId', 名前: 'ユーザー', コンポーネント: () => import('../views/User.vue'), } ]; <!-- これは App.vue にあります --> <テンプレート> <div id="アプリ"> <router-link to="/">ホーム</router-link> | <router-link to="/about">について</router-link> | <!-- ここで v-bind を使用して userId データを呼び出します。 --> <!-- /user/ を文字列として userId に連結します --> <router-link v-bind:to="'/user/' + userId">ユーザー</router-link> </div> <ルータービュー /> </テンプレート> <スクリプト> エクスポートデフォルト{ 名前:「アプリ」、 データ() { 戻る { //ここでuserIdデータをbaixiaに設定します。 ユーザーID: "baixia", }; }, }; </スクリプト> 効果を見てみましょう: 次に「ユーザー」をクリックします。 URL はデータ内の UserId (baixia) を正常に連結します。 2. 動的ルーティングパラメータ動的ルーティングは、Vue がデータを転送する方法の 1 つでもあり、$route を使用して Vue ページ コンポーネント (つまり、vue ファイル) 間で通信します。 たとえば、User.vue は App.vue のデータ内の userId データを取得する必要があります。 <!-- App.vue 内 (送信者) --> <テンプレート> <div id="アプリ"> <router-link v-bind:to="'/user/' + userId">ユーザー</router-link> </div> <ルータービュー /> </テンプレート> <スクリプト> エクスポートデフォルト{ 名前:「アプリ」、 データ() { 戻る { ユーザーID: "baixia", }; }, }; </スクリプト> //user.vue (レシーバー) 内 エクスポートデフォルト{ 名前:"ユーザー", 計算: { ユーザーID() { this.$router.params.userId を返します // this.$router.param.userId の値、 //つまり、App.vueのルーターリンクによって渡されたuserIdが返されます。 //計算属性userID()の値として使用されます} } } User.vue でユーザー情報を取得するために使用されるパラメータは、index.js のパスによって異なります。パスが '/user/:abc' の場合、User.vue の <script> は次のようになります。 エクスポートデフォルト{ 名前:"ユーザー", 計算: { ユーザーID() { //ここでも abc 属性を取得する必要があります。 これを返します。$router.params.abc } } } 要約する昨日、HTML5 デザイン コンテストで最優秀賞を受賞したという通知を受け取りました... Vue-cli4 ルーティング設定の詳細な理解に関するこの記事はこれで終わりです。Vue-cli4 ルーティング設定の関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MySQL システム ユーザーが開くことができるファイルの最大数に関する簡単な説明
>>: Windows 10 に TomCat をインストールするチュートリアル図
MySQLサービスを停止するWindowsでは、マイコンピュータを右クリック--管理--サービスと...
ページに複数の画像を導入すると、画像のサイズがばらつくことがあります。しかし、それらを一貫したサイズ...
この記事では、スクラッチ効果を実現するためのJavaScriptキャンバスの具体的なコードを参考まで...
<Head>……</head> は <HTML> のファイル ヘ...
効果 html <本文> <div class="content&quo...
1. フロート: 主な目的は、テキストを画像の周囲に折り返す効果を実現することです。また、複数列レイ...
重複したフォーム送信は、マルチユーザー Web アプリケーションで最も一般的で厄介な問題です。重複送...
MySQL には、複数の .sql ファイル (SQL ステートメントを含む) をインポートする方法...
この記事の例では、セカンダリメニュー効果を実現するためのJSの具体的なコードを参考までに共有していま...
Webkit スクロールバー スタイルのリセット1. スクロールバーには、スクロールバー ボタンとト...
最近、Web 開発のフロントエンドとバックエンドの技術を学んだので、その後の管理を容易にするためにプ...
コンテナの場合、最も単純なヘルスチェックはプロセス レベルのヘルスチェックであり、プロセスが稼働して...
MySQL の遅いクエリの説明MySQL スロー クエリ ログは、MySQL が提供するログ レコー...
1. インストール手順 Linux 環境でのローカル インストールと比較すると、Docker のイン...
CSSスタイルとHTMLタグ要素を使用するさまざまな HTML タグに点線の境界線を追加するために、...