前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vue --- 关于多个router-view视图组件,渲染同一页面

vue --- 关于多个router-view视图组件,渲染同一页面

作者头像
小蔚
发布2019-09-11 14:33:13
4.2K0
发布2019-09-11 14:33:13
举报
文章被收录于专栏:小蔚记录

vue.js多视图的使用,可以提高网页组件化,模块化

代码语言:javascript
复制
比如使用多视图,可以将网站页面封装header、footer、navbar等多个公共部分,
遇到修改公共部分的文案信息等数据的时候,不再需要逐一修改每个页面;只需要修改各个不同文件引用的唯一对应的视图文件即可完成所有效果的自动更新,
更便捷,更省时,更省力地去管理网站的不同版块。
--------------------- 

总结说明:   1.以前可以一次性放一个坑对应一个路由和显示一个组件    a. 一次行为 = 一个坑 + 一个路由 + 一个组件    b. 一次行为 = 多个坑 + 一个路由 + 多个组件   2.components多视图 是一个对象,对象内多个key和value    a. key对应视图的name属性    b. value就是要显示的组件对象   3.多个视图(name属性省略与否)    省略: <router-view></router-view> —— name就是default    不省略: <router-view name='xxx'></router-view> —— name就是xxx ---------------------

效果图预览:

相关文件代码如下:

1. main.js文件
代码语言:javascript
复制
import Vue from 'vue';
import VueRouter from 'vue-router';
//引入主体(页面初始化显示)
import App from './components/app.vue';
//一个个link对象 - 分类
import Header from './components/header.vue';
import Footer from './components/footer.vue';
/*

//注册全局头部、底部组件
Vue.component('headerVue',Header);
Vue.component('footerVue',Footer);


*/

//安装插件
Vue.use(VueRouter);//挂载属性

//创建路由对象并配置路由规则
let router = new VueRouter({
    //routes
    routes: [
    //一个个link对象
    {
        path: '/',
        components: { // key => value
            header: Header,
            default: Footer, //默认省略不写name的情况
            footer: Footer
        }
    }

  ]
});

// new Vue 启动 
new Vue({
  el: '#app',
  render: c => c(App),
  //让vue知道我们的路由规则
  router:router,//可以简写为router
})
--------------------- 
2. app.vue文件
代码语言:javascript
复制
<template>
  <div>
    <header-vue></header-vue>
    <hr />
        <!--留坑,非常重要-->
            <router-view class="main" name="header"></router-view>
            <router-view class="main"></router-view><!--name省略表示name='default'-->
            <router-view class="main" name="footer"></router-view>
        <hr />
        <footer-vue></footer-vue>



  </div>
</template>

<script>
    export default {
      data(){
        return{

        }
      },
      methods:{

      }
    }
</script>

<style scoped>
    .main{height: 100px;}
</style>
--------------------- 
3. header.vue文件
代码语言:javascript
复制
<template>
    <div>
        我是头部        
    </div>
</template>

<script>
    export default{
        data(){
            return{

            }
        },
        methods:{

        }
    }
</script>

<style scoped>  
</style>

--------------------- 
4. footer.vue文件
代码语言:javascript
复制
<template>
  <div>
    我是底部    
  </div>
</template>

<script>
    export default {
      data(){
        return{

        }
      },
      methods:{

      }
    }
</script>


<style scoped>
</style>
--------------------- 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-10-30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • vue.js多视图的使用,可以提高网页组件化,模块化
    • 效果图预览:
      • 相关文件代码如下:
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档