vue同一个页面可以有多个router-view
参考:https://blog.csdn.net/u011615787/article/details/80075240
分别给router-view定义一个name,默认显示的可以不用定义
自己先在components文件夹内写4个组件,准备放入4个router-viewer标签,我的分别是
app.vue
<template>
<div id="app">
<!-- <img src="./assets/logo.png"> -->
<!-- <container-Left/> -->
<router-link to="/HelloWorld" > 222 </router-link>
<router-view/>
<router-view name="left" class="area left"/>
<router-view name="right" class="area right"/>
<router-view name="logo" class="area "/>
<router-view name="bottom" class="area bottom"/> </div>
</template> <script>
import containerLeft from './components/containerLeft.vue'
export default {
name: 'App',
components:{
containerLeft,
}
}
</script> <style>
#app {
font-family: 'Avenir', Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
/* margin-top: 60px; */
}
.area{
width: 400px;
height:400px;
border:1px red soild;
position: absolute;
top:20px;
z-index: 1002;
}
.left{
left:0px;
top:100px;
}
.right{
right: 0px;
}
.bottom{
top: 90%;
width: 100%;
height: 30px;
}
</style>
路由文件router/index.js
核心:
import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld'
import Veaflet from '@/components/Veaflet'
import containerLeft from '@/components/containerLeft'
import containerRight from '@/components/containerRight'
import containerTop from '@/components/containerTop'
import containerBottom from '@/components/containerBottom'
import lefttree from '@/components/lefttree'
Vue.use(Router) // 创建一个路由器实例
// 并且配置路由规则
const router = new Router({
routes: [
{
path: '/',
name: 'Veaflet',
meta:{title:'Veaflet'},
components:{
default: Veaflet,
left:containerLeft,
right:containerRight,
logo:containerTop,
bottom:containerBottom
}
},
{
path: '/HelloWorld',
name: 'HelloWorld',
meta:{title:'HelloWorld'},
component: HelloWorld
},
{
path: '/containerLeft',
name: 'containerLeft',
meta:{title:'containerLeft'},
component: containerLeft
},
{
path: '/lefttree',
name: 'lefttree',
meta:{title:'lefttree'},
component: lefttree
}
] })
//修改动态网页标题 beforeEach 导航钩子,路由改变前触发
router.beforeEach((to,from,next) =>{
//window.document.title = to.meta.title;
window.document.title = to.name;
next();
})
router.afterEach((to,from,next) =>{
window.scrollTo(0,0);
})
export default router;
运行效果如图:

vue同一个页面可以有多个router-view的更多相关文章
- vue通过ID(参数)修改URL复用同一个页面(组件)不重新加载的问题
项目中经常会用到同一个页面,结构是相同的,我只是在vue-router中通过添加参数的方式来区分状态,参数可以在页面跳转时带上params,或者query,但是有一个问题,即使我们修改了参数,URL也 ...
- vue 常见的新增、编辑、查看公用同一个页面
用vue开发经常会碰到,一个功能的新增.编辑.查看公用同一个页面,如果是页面暂且不提. 但是弹框,很多人会发现,如果是点击编辑,取消,再点新增,弹框上面是会有残留数据的,为什么会这样呢,因为在点编辑的 ...
- vue 组件开发、vue自动化工具、axios使用与router的使用(3)
一. 组件化开发 1.1 组件[component] 在网页中实现一个功能,需要使用html定义功能的内容结构,使用css声明功能的外观样式,还要使用js定义功能的特效,因此就产生了一个功能先关的代码 ...
- Vue数据更新页面没有更新问题总结
Vue数据更新页面没有更新问题总结 1. Vue无法检测实例别创建时不存在于data中的property 原因: 由于Vue会在初始化实例时对property执行getter/setter转化,所以p ...
- vue单页面打包文件大?首次加载慢?按需加载?是你打开方式不对
部署各vue项目,走了一遍坑.... vue单页面应用刷新404 找到nginx多网站配置文件:类似nginx/sites-available/www.baidu.com server { liste ...
- [转] 2017-11-20 发布 另辟蹊径:vue单页面,多路由,前进刷新,后退不刷新
目的:vue-cli构建的vue单页面应用,某些特定的页面,实现前进刷新,后退不刷新,类似app般的用户体验.注: 此处的刷新特指当进入此页面时,触发ajax请求,向服务器获取数据.不刷新特指当进入此 ...
- vue缓存页面【二】
keep-alive是vue内置的一个组件,可以使被它包含的组件处于保留状态,或避免被重新渲染. 用法:运行结果描述:input输入框内,路由切换输入框内部的内容不会发生改变.在keep-alive标 ...
- vue同一页面中拥有两个表单时,验证问题
问题:如果vue的同一个页面拥有两个表单.验证第一个表单时没有通过就切换到第二个,那么第二个表单会出现验证错误的信息 我们可以通过为两个表单添加ref属性 之后在通过调用resetFields()方法 ...
- 关于vue里页面的缓存
keep-alive是vue内置的一个组件,可以使被它包含的组件处于保留状态,或避免被重新渲染. 用法: 运行结果描述: input输入框内,路由切换输入框内部的内容不会发生改变. 在keep-ali ...
随机推荐
- VS2017 常用快捷键
项目相关的快捷键 Ctrl + Shift + B = 生成项目 Ctrl + Alt + L = 显示 Solution Explorer(解决方案资源管理器) Shift + Alt+ C = 添 ...
- [网络流24题]最长k可重线段集[题解]
最长 \(k\) 可重线段集 题目大意 给定平面 \(x-O-y\) 上 \(n\) 个开线段组成的集合 \(I\) ,和一个正整数 \(k\) .试设计一个算法,从开线段集合 \(I\) 中选取开线 ...
- c++中的继承关系
1 什么是继承 面向对象的继承关系指类之间的父子关系.用类图表示如下: 2 为什么要有继承?/ 继承的意义? 因为继承是面向对象中代码复用的一种手段.通过继承,可以获取父类的所有功能,也可以在子类中重 ...
- selenium 鼠标,键盘操作
1.鼠标操作 导包:from selenium.webdriver.common.action_chains import ActionChains 1.context_click() ...
- Deepin 20.2.2 /UOS 20.2 添加ppa源
由于 工作需要,需要通过PPA安装一些优质的软件包,但是 Deepin 默认不支持PPA源 解决方法 由于Deepin/Uos系统默认是没有安装PPA的那么我们得先安装PPA来支持"add- ...
- 解决IDEA右侧maven不显示方法
解决IDEA右侧maven不显示方法 Ctrl+shift+A --> maven--> add maven projects -->选择对应的pom.xml
- 快速上手pandas(下)
和上文一样,先导入后面会频繁使用到的模块: In [1]: import numpy as np import pandas as pd import matplotlib.pyplot as p ...
- 小技巧 | Get 到一个 Web 自动化方案,绝了!
1. 前言 大家好,我是安果! 无论是 Chrome,还是 Firefox 浏览器,它们的强大性在很大程度上都是依赖于海量的插件,让我们能高效办公 那我们是否可以编写一个插件,让浏览器自动化完成一些日 ...
- C/C++入门
C:面向过程-函数 C++:面向对象-类:向下兼容C 程序包含头文件+主函数 简单数据类型 long long型赋超过int型范围的初值,需要在初值后面加上LL,否则可能会编译错误 不要使用float ...
- 安装Linux的步骤 包含linux下安装jdk,及mysql
https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/isos/x86_64/ 镜像下载网址,4G 左右. 安装VMware 15版本 一路下一步, ...