Home.vue 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <template>
  2. <div class="wrapper">
  3. <v-head></v-head>
  4. <v-sidebar></v-sidebar>
  5. <div class="content-box" :class="{'content-collapse':collapse}">
  6. <v-tags></v-tags>
  7. <div class="content">
  8. <transition name="move" mode="out-in">
  9. <keep-alive :include="tagsList">
  10. <router-view></router-view>
  11. </keep-alive>
  12. </transition>
  13. <el-backtop target=".content"></el-backtop>
  14. </div>
  15. </div>
  16. </div>
  17. </template>
  18. <script>
  19. import vHead from './Header.vue';
  20. import vSidebar from './Sidebar.vue';
  21. import vTags from './Tags.vue';
  22. import bus from './bus';
  23. export default {
  24. data() {
  25. return {
  26. tagsList: [],
  27. collapse: false
  28. };
  29. },
  30. components: {
  31. vHead,
  32. vSidebar,
  33. vTags
  34. },
  35. created() {
  36. bus.$on('collapse-content', msg => {
  37. this.collapse = msg;
  38. });
  39. // 只有在标签页列表里的页面才使用keep-alive,即关闭标签之后就不保存到内存中了。
  40. bus.$on('tags', msg => {
  41. let arr = [];
  42. for (let i = 0, len = msg.length; i < len; i++) {
  43. msg[i].name && arr.push(msg[i].name);
  44. }
  45. this.tagsList = arr;
  46. });
  47. }
  48. };
  49. </script>