Vue.js:使用abstract路由模式实现页面内嵌
版权申诉
53 浏览量
更新于2024-08-20
收藏 17KB DOCX 举报
该文档提供了一个使用Vue.js和Vue Router的示例,展示了如何在抽象(abstract)模式下实现页面内嵌。在这种模式下,路由系统不会直接影响浏览器URL,这使得它适合在不依赖浏览器API的环境中使用。文档的重点在于在已有的路由页面中嵌套其他路由页面,同时保持浏览器URL不变。
在Vue Router中,有三种主要的路由模式:hash、history和abstract。`hash`模式使用URL的哈希部分来管理路由,`history`模式则依赖HTML5的`History` API来改变路径,而`abstract`模式是不依赖任何浏览器特性,适用于服务端渲染或不支持这些API的环境。
在示例代码中,首先定义了两个路由:`/abstract-route`和`/embed-route`。`/abstract-route`是主页面,`/embed-route`则是要内嵌的子页面。路由配置如下:
```javascript
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"),
},
];
```
然后创建一个Vue Router实例,设置模式为`history`:
```javascript
const router = new VueRouter({
mode: "history",
base: process.env.BASE_URL,
routes,
});
```
在`abstract-route`的视图中,使用了一个名为`RouterDrawer`的组件,它在抽屉中展示`embed-route`的视图。当点击按钮时,抽屉会打开并显示`embedded`视图:
```html
<template>
<div>
<RouterDrawer
:visible.sync="visible"
:path="{name:'embedded'}"
size="50%"
title="drawercomps"
></RouterDrawer>
<el-button @click="visible = true">open drawer</el-button>
</div>
</template>
```
`embedded`视图非常简单,只包含一个`div`元素:
```html
<template>
<div>
embedded views
</div>
</template>
```
`RouterDrawer`组件通常会封装项目中的路由逻辑,以确保在使用`history`模式时,内嵌的路由不会影响浏览器的URL。这样,即使在`abstract-route`页面内切换到`embed-route`,浏览器地址栏仍显示`/abstract-route`。
总结来说,这个示例展示了如何在Vue应用中利用`abstract`模式实现页面内嵌,同时保持浏览器URL不变。这对于那些需要在特定场景下控制路由变化,或者在不支持HTML5 `History` API的环境下运行的应用特别有用。通过这种方式,可以创建复杂的UI结构,同时保持路由的独立性和可管理性。
2021-12-29 上传
2021-12-28 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
mmoo_python
- 粉丝: 6591
- 资源: 1万+
最新资源
- 如何将数据从CSV和XML导入MS SQL Server
- ROMsettaStone.SoE:SoE的ROMsetta Stone文档
- redux-rest-actions:使用Redux发出REST请求的中间件
- g
- meta-llama-3-8b-instruct 的 model-00002-of-00004.safetensors 的1/3
- laravelapi-vueui
- git-training1:训练库
- netassist.zip
- VM
- ac1poo_190583
- StreamEventCoreference
- emp_curate_data:用于为#EEGManyPipelines准备EEG数据的代码
- computer-systems:穿越计算机系统
- feign_v960依赖的jar包.rar
- vuls-log-converter
- 门业生产企业网站模版