vue設置多個layout(頁面公共內容布局)


1.添加layout文件夾,存放多個layout文件,其中<router-view/>是預留的可變區域位置

 

 

 

 2.main.js中引入layout

 

 

 

 

 3.router index.js中配置頁面需要使用的不同layout名稱

 

 

 

 4.App.vue中配置(標紅部分)

<template>
  <div id="app">
    <component :is="layout">
      <router-view v-if="isRouterAlive"/>
    </component>
  </div>
</template>

<script>
export default {
  name: 'App',
  provide(){
    return {
      reload: this.reload
    }
  },
  data(){
    return {
      default_layout: 'default',//設置layout
      isRouterAlive: true,
    }
  },
  computed:{ layout(){ return (this.$route.meta.layout || this.default_layout) + '-layout' } },
  methods: {
    //通過聲明reload方法,控制router-view的顯示或隱藏,從而控制頁面的再次加載
    reload(){
      this.isRouterAlive = false;
      this.$nextTick(function () {
        this.isRouterAlive = true;
      })
    }
  }
}
</script>

<style>

</style>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM