参考:https://blog.csdn.net/u011615787/article/details/80075240

参考:https://router.vuejs.org/zh/guide/essentials/named-views.html#%E5%B5%8C%E5%A5%97%E5%91%BD%E5%90%8D%E8%A7%86%E5%9B%BE

分别给router-view定义一个name,默认显示的可以不用定义

自己先在components文件夹内写4个组件,准备放入4个router-viewer标签,我的分别是

containerLeft.vue

containerRight.vue

containerTop.vue

containerBottom.vue

app.vue

  1. <template>
  2. <div id="app">
  3. <!-- <img src="./assets/logo.png"> -->
  4. <!-- <container-Left/> -->
  5. <router-link to="/HelloWorld" > 222 </router-link>
  6. <router-view/>
  7. <router-view name="left" class="area left"/>
  8. <router-view name="right" class="area right"/>
  9. <router-view name="logo" class="area "/>
  10. <router-view name="bottom" class="area bottom"/>
  11.  
  12. </div>
  13. </template>
  14.  
  15. <script>
  16. import containerLeft from './components/containerLeft.vue'
  17. export default {
  18. name: 'App',
  19. components:{
  20. containerLeft,
  21. }
  22. }
  23. </script>
  24.  
  25. <style>
  26. #app {
  27. font-family: 'Avenir', Helvetica, Arial, sans-serif;
  28. -webkit-font-smoothing: antialiased;
  29. -moz-osx-font-smoothing: grayscale;
  30. text-align: center;
  31. color: #2c3e50;
  32. /* margin-top: 60px; */
  33. }
  34. .area{
  35. width: 400px;
  36. height:400px;
  37. border:1px red soild;
  38. position: absolute;
  39. top:20px;
  40. z-index: 1002;
  41. }
  42. .left{
  43. left:0px;
  44. top:100px;
  45. }
  46. .right{
  47. right: 0px;
  48. }
  49. .bottom{
  50. top: 90%;
  51. width: 100%;
  52. height: 30px;
  53. }
  54. </style>

路由文件router/index.js

核心:

  1. import Vue from 'vue'
  2. import Router from 'vue-router'
  3. import HelloWorld from '@/components/HelloWorld'
  4. import Veaflet from '@/components/Veaflet'
  5. import containerLeft from '@/components/containerLeft'
  6. import containerRight from '@/components/containerRight'
  7. import containerTop from '@/components/containerTop'
  8. import containerBottom from '@/components/containerBottom'
  9. import lefttree from '@/components/lefttree'
  10. Vue.use(Router)
  11.  
  12. // 创建一个路由器实例
  13. // 并且配置路由规则
  14. const router = new Router({
  15. routes: [
  16. {
  17. path: '/',
  18. name: 'Veaflet',
  19. meta:{title:'Veaflet'},
  20. components:{
  21. default: Veaflet,
  22. left:containerLeft,
  23. right:containerRight,
  24. logo:containerTop,
  25. bottom:containerBottom
  26. }
  27. },
  28. {
  29. path: '/HelloWorld',
  30. name: 'HelloWorld',
  31. meta:{title:'HelloWorld'},
  32. component: HelloWorld
  33. },
  34. {
  35. path: '/containerLeft',
  36. name: 'containerLeft',
  37. meta:{title:'containerLeft'},
  38. component: containerLeft
  39. },
  40. {
  41. path: '/lefttree',
  42. name: 'lefttree',
  43. meta:{title:'lefttree'},
  44. component: lefttree
  45. }
  46. ]
  47.  
  48. })
  49. //修改动态网页标题 beforeEach 导航钩子,路由改变前触发
  50. router.beforeEach((to,from,next) =>{
  51. //window.document.title = to.meta.title;
  52. window.document.title = to.name;
  53. next();
  54. })
  55. router.afterEach((to,from,next) =>{
  56. window.scrollTo(0,0);
  57. })
  58. export default router;

 运行效果如图:

vue同一个页面可以有多个router-view的更多相关文章

  1. vue通过ID(参数)修改URL复用同一个页面(组件)不重新加载的问题

    项目中经常会用到同一个页面,结构是相同的,我只是在vue-router中通过添加参数的方式来区分状态,参数可以在页面跳转时带上params,或者query,但是有一个问题,即使我们修改了参数,URL也 ...

  2. vue 常见的新增、编辑、查看公用同一个页面

    用vue开发经常会碰到,一个功能的新增.编辑.查看公用同一个页面,如果是页面暂且不提. 但是弹框,很多人会发现,如果是点击编辑,取消,再点新增,弹框上面是会有残留数据的,为什么会这样呢,因为在点编辑的 ...

  3. vue 组件开发、vue自动化工具、axios使用与router的使用(3)

    一. 组件化开发 1.1 组件[component] 在网页中实现一个功能,需要使用html定义功能的内容结构,使用css声明功能的外观样式,还要使用js定义功能的特效,因此就产生了一个功能先关的代码 ...

  4. Vue数据更新页面没有更新问题总结

    Vue数据更新页面没有更新问题总结 1. Vue无法检测实例别创建时不存在于data中的property 原因: 由于Vue会在初始化实例时对property执行getter/setter转化,所以p ...

  5. vue单页面打包文件大?首次加载慢?按需加载?是你打开方式不对

    部署各vue项目,走了一遍坑.... vue单页面应用刷新404 找到nginx多网站配置文件:类似nginx/sites-available/www.baidu.com server { liste ...

  6. [转] 2017-11-20 发布 另辟蹊径:vue单页面,多路由,前进刷新,后退不刷新

    目的:vue-cli构建的vue单页面应用,某些特定的页面,实现前进刷新,后退不刷新,类似app般的用户体验.注: 此处的刷新特指当进入此页面时,触发ajax请求,向服务器获取数据.不刷新特指当进入此 ...

  7. vue缓存页面【二】

    keep-alive是vue内置的一个组件,可以使被它包含的组件处于保留状态,或避免被重新渲染. 用法:运行结果描述:input输入框内,路由切换输入框内部的内容不会发生改变.在keep-alive标 ...

  8. vue同一页面中拥有两个表单时,验证问题

    问题:如果vue的同一个页面拥有两个表单.验证第一个表单时没有通过就切换到第二个,那么第二个表单会出现验证错误的信息 我们可以通过为两个表单添加ref属性 之后在通过调用resetFields()方法 ...

  9. 关于vue里页面的缓存

    keep-alive是vue内置的一个组件,可以使被它包含的组件处于保留状态,或避免被重新渲染. 用法: 运行结果描述: input输入框内,路由切换输入框内部的内容不会发生改变. 在keep-ali ...

随机推荐

  1. [Kong] key-auth实现对API请求的密钥认证

    目录 1. 配置密钥验证插件 2. 确认插件配置正确 3. 创建cunsumer 4. 给cunsumer提供关键凭证 5. 验证 6. 小结 [前言]: 下面我们将配置key-auth插件以向服务添 ...

  2. 抓包工具-Charles

    1.简介Charles Charles其实是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的.charles有Window版本和Mac OS版本,也同时支持ios ...

  3. python使用笔记007-内置函数,匿名函数

    1.匿名函数 匿名函数也是一个函数,是一个简单的函数,没有名字,只能实现一些简单的功能 1 #匿名函数也是一个函数,是一个简单的函数,没有名字,只能实现一些简单的功能 2 lambda x:x+1#入 ...

  4. 家庭账本开发day09

    编写数据表格的编辑操作,大体思路和删除操作一样 点击按钮,弹出修改项目,从父窗口获取已有的值赋给 弹出的子窗口中相应的值,在子窗口中点击提交,ajax请求 servlet修改.成功后重载表格,或者up ...

  5. File类与常用IO流第五章——IO字符流

    字符流,只能操作文本文件,不能操作图片.视频等非文本文件 字符输入流 java.io.Reader 字符输入流中一些共性的成员方法 int read():读取单个字符并返回. int read(cha ...

  6. Python+Request库+第三方平台实现验证码识别示例

    1.登录时经常的出现验证码,此次结合Python+Request+第三方验证码识别平台(超级鹰识别平台) 2.首先到超级鹰平台下载对应语言的识别码封装,超级鹰平台:http://www.chaojiy ...

  7. .net core工具组件系列之Redis—— 第一篇:Windows环境配置Redis(5.x以上版本)以及部署为Windows服务

    Cygwin工具编译Redis Redis6.x版本是未编译版本(官方很调皮,所以没办法,咱只好帮他们编译一下了),所以咱们先下载一个Cygwin,用它来对Redis进行编译. Cygwin下载地址: ...

  8. Innodb 锁的介绍

    如下博文是参考如下博文内容,再加整理. http://blog.chinaunix.net/uid-24111901-id-2627857.html http://blog.csdn.net/wang ...

  9. (JAVA2)写博客的好帮手:Typora

    (二)写博客的好帮手:Typora 推荐文本编辑器 :Typora 文件后缀 : xxx.md 安装步骤 打开浏览器搜索Typora 进入官网后,点击Download(下载) 选择自己的操作系统 选择 ...

  10. [JS]函数作为值

    在JavaScript中,函数不仅是语法,也是值.这意味着可以把函数赋值给变量.保存为对象的属性或者数组的元素.作为参数传给其他函数. 将函数赋值给变量s,实际上变量引用的是函数对象.不仅可以通过函数 ...