vue 基于abstract 路由模式 实现页面内嵌的示例代码


Posted in Vue.js onDecember 14, 2020

abstract 路由模式

abstract 是vue路由中的第三种模式,本身是用来在不支持浏览器API的环境中,充当fallback,而不论是hash还是history模式都会对浏览器上的url产生作用,本文要实现的功能就是在已存在的路由页面中内嵌其他的路由页面,而保持在浏览器当中依旧显示当前页面的路由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>

vue 基于abstract 路由模式 实现页面内嵌的示例代码

router-drawer 封装

当前项目默认是history 的路由模式,因此在进入abstract页面时,浏览器Url为http://127.0.0.1:8010/abstract-route,而router-drawer要做的是在此基础上,重新实例化一个abstract模式的路由,然后在组件当中利用<router-view />去挂载要被内嵌的目标页面。即:

<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>

通过打印日志可以得出两个实例化的路由:

vue 基于abstract 路由模式 实现页面内嵌的示例代码

这样即可实现在不改变当前页面path的前提下加载其他路由中的views了。

代码示例

以上就是vue 基于abstract 路由模式 实现页面内嵌的示例代码的详细内容,更多关于vue 实现页面内嵌的资料请关注三水点靠木其它相关文章!

Vue.js 相关文章推荐
vue中defineProperty和Proxy的区别详解
Nov 30 Vue.js
详解vue中使用transition和animation的实例代码
Dec 12 Vue.js
vue实现图书管理系统
Dec 29 Vue.js
利用Vue实现简易播放器的完整代码
Dec 30 Vue.js
Vue实现一种简单的无限循环滚动动画的示例
Jan 10 Vue.js
vue 组件基础知识总结
Jan 26 Vue.js
Vue 事件的$event参数=事件的值案例
Jan 29 Vue.js
vue中h5端打开app(判断是安卓还是苹果)
Feb 26 Vue.js
vue项目实现分页效果
Mar 24 Vue.js
springboot+VUE实现登录注册
May 27 Vue.js
vue3中provide && inject的使用
Jul 01 Vue.js
vue3 自定义图片放大器效果的示例代码
Jul 23 Vue.js
Vue实现点击当前行变色
Dec 14 #Vue.js
Vue实现简单购物车功能
Dec 13 #Vue.js
vue使用element-ui实现表单验证
Dec 13 #Vue.js
vue+element实现动态加载表单
Dec 13 #Vue.js
vue实现两个区域滚动条同步滚动
Dec 13 #Vue.js
vue实现滚动鼠标滚轮切换页面
Dec 13 #Vue.js
详解vue中使用transition和animation的实例代码
Dec 12 #Vue.js
You might like
PHP应用JSON技巧讲解
2013/02/03 PHP
浅析is_writable的php实现
2013/06/18 PHP
PHP记录搜索引擎蜘蛛访问网站足迹的方法
2015/04/15 PHP
php中preg_replace正则替换用法分析【一次替换多个值】
2017/01/17 PHP
Laravel Reponse响应客户端示例详解
2020/09/03 PHP
Ajax::prototype 源码解读
2007/01/22 Javascript
用jQuery实现的智能隐藏、滑动效果的返回顶部代码
2014/03/18 Javascript
浅析jQuery EasyUI中的tree使用指南
2014/12/18 Javascript
JQuery控制radio选中和不选中方法总结
2015/04/15 Javascript
js操作css属性实现div层展开关闭效果的方法
2015/05/11 Javascript
实例解析jQuery工具函数
2016/12/01 Javascript
js实现华丽的九九乘法表效果
2017/03/29 Javascript
Bootstrap滚动监听组件scrollspy.js使用方法详解
2017/07/20 Javascript
基于JS实现视频上传显示进度条
2020/05/12 Javascript
[01:33:14]LGD vs VP Supermajor 败者组决赛 BO3 第二场 6.10
2018/07/04 DOTA
[01:08:56]DOTA2-DPC中国联赛 正赛 Magma vs LBZS BO3 第一场 2月7日
2021/03/11 DOTA
Python程序设计入门(2)变量类型简介
2014/06/16 Python
Python编程实现数学运算求一元二次方程的实根算法示例
2017/04/02 Python
详解Python自建logging模块
2018/01/29 Python
Python实现通过解析域名获取ip地址的方法分析
2019/05/17 Python
python字典一键多值实例代码分享
2019/06/14 Python
python实现列表中最大最小值输出的示例
2019/07/09 Python
python tqdm库的使用
2020/11/30 Python
HTML5中indexedDB 数据库的使用实例
2017/05/11 HTML / CSS
Radley英国官网:英国莱德利小狗包
2019/03/21 全球购物
DOUGLAS波兰:在线销售香水和化妆品
2020/07/05 全球购物
世界上最大的皮肤科医生拥有和经营的美容网站:LovelySkin
2021/01/03 全球购物
法雷奥SQA(electric)面试问题
2016/01/23 面试题
中学生励志演讲稿
2014/04/26 职场文书
优秀团员事迹材料
2014/12/25 职场文书
个人创业事迹材料
2014/12/30 职场文书
明星邀请函
2015/02/02 职场文书
安全生产先进个人总结
2015/02/15 职场文书
2016年小学教师政治学习心得体会
2016/01/23 职场文书
《工作是最好的修行》读后感3篇
2019/12/13 职场文书
纯html+css实现打字效果
2021/08/02 HTML / CSS