Vue router-viewとrouter-linkの実装原理

Vue router-viewとrouter-linkの実装原理

使用

<div id="アプリ">
  <router-link to='home'>ホーム</router-link>
  <router-link to='about'>について</router-link>
  <ルータービュー a=1><ルータービュー/>
 </div>

ルータービューコンポーネント

エクスポートデフォルト{
// 機能コンポーネントにはこれがなく、新規作成できず、双方向データ バインディングもありません。通常、機能コンポーネントはそれほど頻繁には使用されず、詳細ページは表示のみで変更や他の操作は実行されないため、詳細ページの表示に適しています。機能コンポーネントは、ステートフル コンポーネントよりも軽量です。
  機能:true、
  レンダリング(h,{親,データ}){
  親は親コンポーネントアプリを表します
  data はインライン属性 (上記のコードでは a=1) であり、prop let route = parent.$route; を使用して渡すこともできます。
    深さを 0 にします。
    ルータービューを true に設定します。
    while(親){ 
    //$vnodeは仮想DOMを参照します。アプリに仮想DOMがあり、この仮想DOMのrouterViewがtrueの場合
      親.$vnode && 親.$vnode.data.routerView の場合{
        深さ++; 
      }
      親 = 親.$parent;
    }
    レコードをルート.matched[depth]とします。
    if(!記録){
      h() を返します。
    }
    h(record.component, data) を返します。
  }
}

ルータリンクの実装

エクスポートデフォルト{
  小道具:{
    に:{
      タイプ:文字列、
      必須:true
    },
    タグ:{
      タイプ:文字列
    }
  },
  レンダリング(h){
    tag = this.tag || 'a' とします。
    ハンドラを = ()=>{
      this.$router.push(this.to);
    }
    <tag onClick={handler}>{this.$slots.default}</tag> を返します。
  }
}

Vue router-view と router-link の実装原理に関するこの記事はこれで終わりです。Vue router-view と router-link に関するより関連性の高いコンテンツについては、123WORDPRESS.COM で過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • vue router-view のネストされた表示実装
  • vue update router-viewの再利用コンポーネントの内容が更新されない問題を解決する
  • vue で router-view コンポーネントを使用するチュートリアル
  • Vue2はrouter-viewのデフォルトパスを設定します
  • Vueは、同じページに複数のルータービューを配置する方法を実装しています。
  • vue2.0 ルーティングでルータービューが表示されない問題の解決方法
  • vue-router で router-view がレンダリングされない問題の解決方法
  • vue ルーティング ビュー router-view のネストされたジャンプの実装

<<:  Python MySQL データベース テーブルの変更とクエリ

>>:  Linux コマンドラインのクイックヒント: ファイルの検索方法

推薦する

Vue コード強調プラグインの総合的な比較と評価

目次総合的な比較アクティブの観点から機能的な観点から詳細な比較1. エース2. コードミラー3. モ...

MySQLパスワード変更例の詳細な説明

MySQLパスワード変更例の詳細な説明長い間 MySQL を使用していませんでした。今日、MySQL...

vue.config.js パッケージ最適化構成

Baiduの情報は多様すぎて目が回ります。心配しないでください。私はあなたのためにそれを体験しました...

mysql5.7.19 winx64 インストールおよび構成方法のグラフィック チュートリアル (win10)

mysql 5.7.19 winx64のインストールチュートリアルは以下のように記録され、みんなと...

Windows での MySQL 8.0.12 のインストール手順と基本的な使用方法のチュートリアル

この記事では、WindowsでのMySQL 8.0.12のインストール手順と使用方法のチュートリアル...

nginx を使用して 1 つのドメイン名で複数の Laravel プロジェクトを構成する方法の例

背景会社のサブプロジェクトが増えるにつれて、さまざまなサイズのプロジェクトが10個以上になります(バ...

Tomcat を使用して IntelliJ IDEA によってデプロイされたプロジェクトの場所はどこですか?

IntelliJ IDEA が Tomcat を使用して Javaweb プロジェクトをデプロイし...

XHTML ブロックレベルタグの概要

* 住所 - 住所* blockquote - ブロック引用* center - 中央揃えブロック*...

DockerイントラネットはDNSを構築し、ip:port操作の代わりにドメイン名アクセスを使用します

たとえば、イントラネットに Jenkins サーバーがある場合、そのサーバーにアクセスするには、その...

Vue+SpringBoot+Shiroのクロスドメイン問題を解決する

目次1. Vueフロントエンドを構成する1. クロスドメイン構成を開発する2. 本番環境のクロスドメ...

JavaScriptオフセットは、ウィンドウ内でのマウス座標の取得とモジュールのドラッグを実装します。

オフセットOffset はオフセットです。関連プロパティの offset シリーズを使用すると、次の...

MySQL フラッシュリストとダーティページフラッシュメカニズム

1. レビューMySQL の起動後にバッファ プールが初期化されます。バッファ プールは N 個の空...

CSS を使用して半透明の背景と不透明なテキストを実現する例

この記事では、CSS を使用して半透明の背景と不透明なテキストの効果を実現する方法の例を紹介します。...

win10環境でDockerをインストールする実装

1. Docker公式サイトにアクセスするまず、Dockerの公式ウェブサイトにアクセスして、最新の...

Docker で Node プロジェクトをビルドしてデプロイする方法

目次DockerとはクライアントサイドDocker基本的なDocker操作画像名画像をプルするその他...