欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue 基于abstract 路由模式 實現(xiàn)頁面內(nèi)嵌的示例代碼

 更新時間:2020年12月14日 09:57:47   作者:j_bleach  
這篇文章主要介紹了vue 基于abstract 路由模式 實現(xiàn)頁面內(nèi)嵌的示例代碼,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下

abstract 路由模式

abstract 是vue路由中的第三種模式,本身是用來在不支持瀏覽器API的環(huán)境中,充當fallback,而不論是hash還是history模式都會對瀏覽器上的url產(chǎn)生作用,本文要實現(xiàn)的功能就是在已存在的路由頁面中內(nèi)嵌其他的路由頁面,而保持在瀏覽器當中依舊顯示當前頁面的路由path,這就利用到了abstract這種與瀏覽器分離的路由模式。

路由示例

export const routes = [
 {
  path: "/",
  redirect: "abstract-route",
 },
 {
  path: "/embed-route",
  name: "embedded",
  component: () =>
   import(/* webpackChunkName: "embed" */ "../views/embed.vue"),
 },
 {
  path: "/abstract-route",
  name: "abstract",
  component: () =>
   import(/* webpackChunkName: "abstract" */ "../views/abstract.vue"),
 },
];

const router = new VueRouter({
 mode: "history",
 base: process.env.BASE_URL,
 routes,
});

本次示例有兩個路由,分別為abstract,embedded,其中abstract視圖上展開一個抽屜,抽屜當中顯示embedded的視圖。即:

<template>
 <div>
  <RouterDrawer
   :visible.sync="visible"
   :path="{ name: 'embedded' }"
   size="50%"
   title="drawer comps"
  ></RouterDrawer>
  <el-button @click="visible = true">open drawer</el-button>
 </div>
</template>


// embedded views
<template>
 <div>
  embedded views
 </div>
</template>

router-drawer 封裝

當前項目默認是history 的路由模式,因此在進入abstract頁面時,瀏覽器Url為http://127.0.0.1:8010/abstract-route,而router-drawer要做的是在此基礎上,重新實例化一個abstract模式的路由,然后在組件當中利用<router-view />去掛載要被內(nèi)嵌的目標頁面。即:

<template>
 <el-drawer
  :visible.sync="visible"
  v-bind="$attrs"
  :before-close="handleClose"
 >
  <router-view />
 </el-drawer>
</template>
<script>
import { routes } from "../router/index";
import VueRouter from "vue-router";

export default {
 name: "router-drawer",
 props: {
  path: {
   type: Object,
   required: true,
  },
  visible: {
   type: Boolean,
   required: true,
   default: false,
  },
 },
  // 此處實例化一個新的router來配合當前頁面的router-view
 router: new VueRouter({
  mode: "abstract",
  base: "/",
  routes,
 }),
 methods: {
  handleClose() {
   this.$emit("update:visible", false);
  },
 },
 mounted() {
  console.log("drawer router", this.$router);
  this.$router.push(this.path);
 },
};
</script>

通過打印日志可以得出兩個實例化的路由:

這樣即可實現(xiàn)在不改變當前頁面path的前提下加載其他路由中的views了。

代碼示例

以上就是vue 基于abstract 路由模式 實現(xiàn)頁面內(nèi)嵌的示例代碼的詳細內(nèi)容,更多關于vue 實現(xiàn)頁面內(nèi)嵌的資料請關注腳本之家其它相關文章!

相關文章

  • 詳解vue 命名視圖

    詳解vue 命名視圖

    這篇文章主要介紹了vue 命名視圖的相關知識,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • 解決Vue打包之后文件路徑出錯的問題

    解決Vue打包之后文件路徑出錯的問題

    下面小編就為大家分享一篇解決Vue打包之后文件路徑出錯的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • 詳解vue路由篇(動態(tài)路由、路由嵌套)

    詳解vue路由篇(動態(tài)路由、路由嵌套)

    這篇文章主要介紹了詳解vue路由篇(動態(tài)路由、路由嵌套),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • VUE2.0+ElementUI2.0表格el-table循環(huán)動態(tài)列渲染的寫法詳解

    VUE2.0+ElementUI2.0表格el-table循環(huán)動態(tài)列渲染的寫法詳解

    這篇文章主要介紹了VUE2.0+ElementUI2.0表格el-table循環(huán)動態(tài)列渲染的寫法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-11-11
  • 淺談一下Vue技術棧之生命周期

    淺談一下Vue技術棧之生命周期

    這篇文章主要介紹了淺談一下Vue技術棧之生命周期,每一個vue實例從創(chuàng)建到銷毀的過程,就是這個vue實例的生命周期,這些過程中會伴隨著一些函數(shù)的自調(diào)用,需要的朋友可以參考下
    2023-05-05
  • Vue通過WebSocket建立長連接的實現(xiàn)代碼

    Vue通過WebSocket建立長連接的實現(xiàn)代碼

    這篇文章主要介紹了Vue通過WebSocket建立長連接的實現(xiàn)代碼,文中給出了問題及解決方案,需要的朋友可以參考下
    2019-11-11
  • vue3中使用router4 keepalive的問題

    vue3中使用router4 keepalive的問題

    這篇文章主要介紹了vue3中使用router4 keepalive的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • vue實現(xiàn)可視化可拖放的自定義表單的示例代碼

    vue實現(xiàn)可視化可拖放的自定義表單的示例代碼

    這篇文章主要介紹了vue實現(xiàn)可視化可拖放的自定義表單的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • ToB項目如何沉淀業(yè)務公共組件示例詳解

    ToB項目如何沉淀業(yè)務公共組件示例詳解

    這篇文章主要為大家介紹了ToB項目如何沉淀業(yè)務公共組件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • vue3 el-select懶加載以及自定義指令方式

    vue3 el-select懶加載以及自定義指令方式

    這篇文章主要介紹了vue3 el-select懶加載以及自定義指令方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04

最新評論