vue ルーターはすべてのサブルートを独立したコンポーネントに分離します
今回は、すべてのサブルートを独立したコンポーネントに分離するための vue ルーターについて説明します。vue ルーターがすべてのサブルートを独立したコンポーネントに分離するための 注意事項は何ですか。以下は実際的なケースです。
vue-routerの動的ルーティングvue-router官网上面是这样说的 // 带查询参数,变成 /register?plan=private router.push({ path: 'register', query: { plan: 'private' }}) 然后,我就这样写了: this.$router.push({path:'manage', query: {id: 'tasklist'}})1 结果很明显,失败了。然后我就默默的再次看了一下官网,结果发现了这句话 // 命名的路由 router.push({ name: 'user', params: { userId: 123 }}) // 带查询参数,变成 /register?plan=private router.push({ path: 'register', params: { plan: 'private' }}) 注意:如果提供了 path,params 会被忽略,上述例子中的 query 并不属于这种情况。取而代之的是下面例子的做法,你需要提供路由的 name 或手写完整的带有参数的 path: const userId = 123 router.push({ name: 'user', params: { userId }}) // -> /user/123 router.push({ path: `/user/${userId}` }) // -> /user/123 // 这里的 params 不生效 router.push({ path: '/user', params: { userId }}) // -> /user 谨记啊,动态实现二级路由,需要先用变量保存二级路由名称(let router = 'tasklist'),然后调用this.$router.push({path: `/user/${router}`}).
vue routerの動的ルーティングの下で各サブルートを独立したコンポーネントにする解決策を見てみましょう
vue-routerはネストされたルーティング戦略にコンポーネントの再利用を使用しているため、これはこれは確かにほとんどのシナリオで効率的なアプローチですが、次のような状況に遭遇した場合:watch: { '$route'(to) { if (to.meta.path === '/page/buy-details') { this.id = to.params.id; this.state() } } },
この考えに従って書きます。 mixins
export default { watch: { '$route'(to, from) { this.detailsLeave(from); this.detailsOpen(to); } }, data() { return { pagePath: '', pageId: 0, pages: {} } }, methods: { /** * 子页面打开触发 * @param route */ detailsOpen(route) { if (this.detailsPathGet(route.path) === this.pagePath) { if (!this.pages[route.params.id]) { this.$set(this.pages, route.params.id, { id: route.params.id, scrollTop: 0 }) } //路由打开 跳转滚动条 this.pageId = route.params.id; this.$nextTick(()=>{ this.$parent.$el.firstChild.scrollTop = this.pages[route.params.id].scrollTop; }); } }, /** * 路由切换触发 * 判断离开的路由是否是当前页面,如果是则记录滚动条高度 * @param route */ detailsLeave(route) { if (this.detailsPathGet(route.path) === this.pagePath) { if (this.pages[route.params.id]) { //记录滚动条高度 此处针对ea-admin后台 不同的框架要记录的滚动条el不同 this.pages[route.params.id].scrollTop = this.$parent.$el.firstChild.scrollTop ; } } }, /** * 子页面关闭函数 * @param id */ detailsClose(id) { delete this.pages[id] }, /** * 取路由不含最后一项参数的地址 * @param path * @returns {string} */ detailsPathGet(path) { const i = path.lastIndexOf('/'); return path.substr(0, i); } }, mounted() { //通过当前路由地址创建页面识别地址 注:只对path: '/user/:id' 有效 当 path: /user/:id/profile 失效 this.pagePath = this.detailsPathGet(this.$route.path); //执行第一次子页面打开 this.detailsOpen(this.$route); //监听标签关闭消息 此处针对ea-admin后台 不同框架监听关闭方式不同 this.$tabs.onRemove((page, next) => { //收到标签关闭回调,判断关闭的是否是当前页面 if (page._path === this.pagePath) { //触发子页面删除 this.detailsClose(page.id) } next() }) } }
<template> <p> <your-component v-for="item in pages" :id="item.id" :key="item.id" v-show="item.id === pageId"> </your-component> </p> </template> <script> import YourComponent from ''; import detailsPage from '../mixins/details-page' export default { name: 'DetailsPage', components: {YourComponent}, mixins: [detailsPage], } </script>
WeChat ミニ プログラムの画像をデバイスの高さに合わせる方法
vue.js フロントエンドとバックエンドのデータ対話手順の詳細な説明
以上がvue ルーターはすべてのサブルートを独立したコンポーネントに分離しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









ReactRouter ユーザーガイド: フロントエンドルーティング制御の実装方法 シングルページアプリケーションの人気に伴い、フロントエンドルーティングは無視できない重要な部分になりました。 React エコシステムで最も人気のあるルーティング ライブラリとして、ReactRouter は豊富な機能と使いやすい API を提供し、フロントエンド ルーティングの実装を非常にシンプルかつ柔軟にします。この記事では、ReactRouter の使用方法と具体的なコード例を紹介します。 ReactRouter を最初にインストールするには、次のものが必要です

Java 9 のモジュール システムを使用してコードを分離および分離する方法 ソフトウェアの規模が拡大し続けるにつれて、コードの複雑さは増加し続けています。コードをより適切に編成および管理するために、Java9 ではモジュール システムが導入されました。モジュール システムの出現により、従来のパッケージの依存関係の問題が解決され、コードの分離と分離がより簡単かつ柔軟になりました。この記事では、Java 9 のモジュール システムを使用してコードの分離と分離を実現する方法を紹介します。 1. モジュールの定義 Java9 では module キーワードを使用してモジュールを定義できます。

タイトル: Golang のフロントエンドとバックエンドの分離開発におけるフロントエンド テクノロジの選択に関する提案 Web アプリケーションの複雑さと要求が増加し続けるにつれて、フロントエンドとバックエンドの分離開発モデルがますます普及しています。この開発モデルでは、バックエンドがビジネス ロジックの処理を担当し、フロントエンドがページの表示とユーザーとの対話を担当し、両者は API を介して通信します。 Golang をバックエンド言語として使用する開発チームにとって、適切なフロントエンド テクノロジを選択することは非常に重要です。この記事では、Golang でフロントエンドとバックエンドを個別に開発する場合に選択する推奨フロントエンド テクノロジについて説明します。

VueRouter は、Vue.js によって公式に提供されているルーティング管理プラグインで、Vue アプリケーションでのページ ナビゲーションとルート切り替えの実装に役立ちます。遅延読み込み機能は VueRouter 独自の利点であり、ページのパフォーマンスを大幅に最適化できます。この記事では、VueRouter の Lazy-Loading ルーティング機能を紹介し、ページのパフォーマンスを最適化するための実践的なコード例をいくつか紹介します。必要に応じて遅延読み込みを行う

ルーターが表示されない場合の解決策: 1. 親ルーティング コンポーネントにbrowserRouterを追加してルーターをラップします; 2. 「this.props.history.go()」を使用してコンポーネントを更新します; 3. 「forcerefresh」をbrowserrouter パラメーターに追加します={true}"; 4. "<Route>" にフック関数を記述し、このルートから出るときまたはこのルートに入るときに呼び出します。

VueRouter は、Vue.js フレームワークの公式ルート マネージャーです。これにより、開発者はルート マッピングを通じてページ コンテンツを切り替えることができるため、単一ページ アプリケーションの制御性が向上し、保守が容易になります。ただし、アプリケーションが複雑になるにつれて、ルートの読み込みと解析がパフォーマンスのボトルネックになる可能性があります。この問題を解決するために、VueRouter は、実際に必要になるまでルートの読み込みを延期する、ルートの遅延読み込み機能を提供します。遅延読み込みは、

PHP 開発者は、Web サイト開発プロセス中にデータベース操作に直面することがよくありますが、非常に人気のあるデータベース管理システムである MySQL の読み取りと書き込みの分離は、Web サイトのパフォーマンスを向上させる重要な手段の 1 つです。 PHP 開発では、MySQL の読み取りと書き込みの分離を実装すると、Web サイトの同時アクセス機能とユーザー エクスペリエンスが大幅に向上します。この記事では、MySQL の読み書き分離の実装方法を詳細に紹介し、PHP 開発者が読み書き分離機能をよりよく理解して適用できるように、具体的な PHP コード例を示します。 MySQLの読み取りとは何ですか

1. ルート ジャンプ 1. 最初に API を導入します — useRouterimport{useRouter}from'vue-router'2. ジャンプ ページでルーター変数を定義します // 最初にセットアップで constrouter=useRouter() を定義します 3. router.push を使用してページにジャンプします //String router.push('home')//Object router.push({path:'home'})//
