Der Vue-Router trennt alle Unterrouten in unabhängige Komponenten
Dieses Mal bringe ich Ihnen einen Vue-Router, um alle Unterrouten in unabhängige Komponenten zu unterteilen. Was sind die Vorsichtsmaßnahmen für den Vue-Router, um alle Unterrouten in unabhängige Komponenten zu unterteilen? Werfen wir einmal einen Blick.
Dynamisches Routing des Vue-Routersvue-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}`}).
Werfen wir einen Blick auf die Lösung, jede Unterroute zu einer unabhängigen Komponente unter dem dynamischen Routing des Vue-Routers zu machen
Da vue-router eine Komponentenwiederverwendungsstrategie für verschachteltes Routing anwendet, ist dies in den meisten Szenarien tatsächlich ein effizienter Ansatz, aber wenn Sie auf diese Situation stoßen:
watch: { '$route'(to) { if (to.meta.path === '/page/buy-details') { this.id = to.params.id; this.state() } } },
Ich habe ein Mixins geschrieben Basierend auf dieser Idee
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>
So passen Sie Bilder im WeChat-Applet an die Modellgröße an
vue.js Frontend und Back-End-Daten Detaillierte Erläuterung der Interaktionsschritte
Das obige ist der detaillierte Inhalt vonDer Vue-Router trennt alle Unterrouten in unabhängige Komponenten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



ReactRouter-Benutzerhandbuch: So implementieren Sie die Front-End-Routing-Steuerung Mit der Popularität von Single-Page-Anwendungen ist das Front-End-Routing zu einem wichtigen Bestandteil geworden, der nicht ignoriert werden kann. Als beliebteste Routing-Bibliothek im React-Ökosystem bietet ReactRouter umfangreiche Funktionen und benutzerfreundliche APIs, wodurch die Implementierung des Front-End-Routings sehr einfach und flexibel ist. In diesem Artikel wird die Verwendung von ReactRouter vorgestellt und einige spezifische Codebeispiele bereitgestellt. Um ReactRouter zuerst zu installieren, benötigen wir

So verwenden Sie das Modulsystem in Java 9 zum Trennen und Isolieren von Code. Da der Umfang der Software weiter zunimmt, nimmt auch die Komplexität des Codes weiter zu. Um Code besser zu organisieren und zu verwalten, führte Java9 das Modulsystem ein. Das Aufkommen des Modulsystems löst das Problem traditioneller Paketabhängigkeiten und macht die Trennung und Isolierung von Code einfacher und flexibler. In diesem Artikel wird erläutert, wie Sie mithilfe des Modulsystems in Java 9 eine Codetrennung und -isolierung erreichen. 1. Definition des Moduls In Java9 können wir zum Definieren das Schlüsselwort module verwenden

Titel: Vorschläge zur Auswahl der Front-End-Technologie in der Front-End- und Back-End-Trennungsentwicklung von Golang Da die Komplexität und Anforderungen von Webanwendungen weiter zunehmen, wird das Front-End- und Back-End-Trennungsentwicklungsmodell immer beliebter. In diesem Entwicklungsmodell ist das Backend für die Verarbeitung der Geschäftslogik verantwortlich, und das Frontend ist für die Anzeige von Seiten und die Interaktion mit Benutzern verantwortlich. Die beiden kommunizieren über APIs. Für Entwicklungsteams, die Golang als Back-End-Sprache verwenden, ist die Wahl der richtigen Front-End-Technologie von entscheidender Bedeutung. In diesem Artikel werden die empfohlenen Front-End-Technologien zur Auswahl bei der separaten Entwicklung von Front-End und Back-End in Golang erläutert

VueRouter ist ein Routenverwaltungs-Plug-in, das offiziell von Vue.js bereitgestellt wird. Es kann uns bei der Implementierung von Seitennavigation und Routenumschaltung in Vue-Anwendungen helfen. Die Lazy-Loading-Funktion ist ein einzigartiger Vorteil von VueRouter, der die Seitenleistung erheblich optimieren kann. In diesem Artikel stellen wir die Lazy-Loading-Routing-Funktion von VueRouter vor und stellen einige praktische Codebeispiele zur Optimierung der Seitenleistung bereit. Lazy-Loading bedeutet bei Bedarf

Lösung, um darauf zu reagieren, dass der Router nicht angezeigt wird: 1. BrowserRouter zur übergeordneten Routing-Komponente hinzufügen, um den Router zu umschließen. 2. Verwenden Sie „this.props.history.go()“, um die Komponente zu aktualisieren. 3. Fügen Sie „forcerefresh“ zum Browserrouter-Parameter hinzu ={true}“; 4. Schreiben Sie eine Hook-Funktion in „<Route>“ und rufen Sie sie auf, wenn Sie diese Route verlassen oder betreten.

VueRouter ist der offizielle Routing-Manager im Vue.js-Framework. Es ermöglicht Entwicklern, Seiteninhalte durch Routenzuordnung zu wechseln, wodurch Einzelseitenanwendungen besser kontrollierbar und einfacher zu warten sind. Wenn Anwendungen jedoch komplexer werden, kann das Laden und Parsen von Routen zu einem Leistungsengpass werden. Um dieses Problem zu lösen, bietet VueRouter eine Funktion zum verzögerten Laden von Routen, die das Laden von Routen verzögert, bis es tatsächlich benötigt wird. Lazy-Loading ist eine Ladetechnologie, die

PHP-Entwickler sind während des Website-Entwicklungsprozesses häufig mit Datenbankoperationen konfrontiert. Als sehr beliebtes Datenbankverwaltungssystem ist die Lese-/Schreibtrennung von MySQL eines der wichtigsten Mittel zur Verbesserung der Website-Leistung. In der PHP-Entwicklung kann die Implementierung der MySQL-Lese-/Schreibtrennung die Möglichkeiten des gleichzeitigen Zugriffs und die Benutzererfahrung der Website erheblich verbessern. In diesem Artikel wird die Implementierungsmethode der MySQL-Lese-/Schreibtrennung ausführlich vorgestellt und spezifische PHP-Codebeispiele bereitgestellt, um PHP-Entwicklern dabei zu helfen, die Lese-/Schreibtrennungsfunktion besser zu verstehen und anzuwenden. Was ist MySQL lesen?

1. Routensprung 1. Führen Sie zunächst die API ein – useRouterimport{useRouter}from'vue-router'2. Definieren Sie die Router-Variable auf der Sprungseite. // Definieren Sie zunächst constrouter=useRouter() im Setup. 3. Verwenden Sie router.push Zur Seite springen //String router.push('home')//Object router.push({path:'home'})//
