Vue.js多视图的使用

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

总结说明:

以前可以一次性放一个坑对应一个路由和显示一个组件 
a. 一次行为 = 一个坑 + 一个路由 + 一个组件 
b. 一次行为 = 多个坑 + 一个路由 + 多个组件
components多视图 是一个对象,对象内多个key和value 
a. key对应视图的name属性 
b. value就是要显示的组件对象
多个视图<router-view></router-view> 》》》name就是default
<router-view name='xxx'></router-view> 》》》name就是xxx

效果图预览:
这里写图片描述

相关文件代码如下:

1. main.js文件
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:{
            header:Header,
            default:Footer,
            footer:Footer
        }
    }
  ]
});

// new Vue 启动 
new Vue({
  el: '#app',
  render: c => c(App),
  //让vue知道我们的路由规则
  router:router,//可以简写为router
})

2. app.vue文件

<template>
  <div>
    <header-vue></header-vue>
    <hr />
        <!--留坑,非常重要-->
            <router-view class="main" name="header"></router-view>
            <router-view class="main"></router-view>
            <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文件

<template>
    <div>
        我是头部        
    </div>
</template>

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

            }
        },
        methods:{

        }
    }
</script>

<style scoped>  
</style>

4. footer.vue文件

<template>
  <div>
    我是底部    
  </div>
</template>

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

        }
      },
      methods:{

      }
    }
</script>
<style scoped>  </style>

转自博客:https://blog.csdn.net/qq_35393869/article/details/80267063

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值