Sidebar.vue 808 B

12345678910111213141516171819202122232425262728293031
  1. <script>
  2. import { defineComponent } from 'vue'
  3. import DesktopSidebar from '@/components/DesktopSidebar.vue'
  4. import MobileSidebar from '@/components/MobileSidebar.vue'
  5. export default defineComponent({
  6. name: 'Sidebar',
  7. components: { DesktopSidebar, MobileSidebar },
  8. data() {
  9. return {
  10. windowWidth: window.innerWidth,
  11. }
  12. },
  13. created() {
  14. window.addEventListener('resize', this.handleResize)
  15. },
  16. unmounted() {
  17. window.removeEventListener('resize', this.handleResize)
  18. },
  19. methods: {
  20. handleResize() {
  21. this.windowWidth = window.innerWidth
  22. },
  23. },
  24. })
  25. </script>
  26. <template>
  27. <MobileSidebar v-if="windowWidth < 768" />
  28. <DesktopSidebar v-if="windowWidth > 768" :minimized="windowWidth < 1300" />
  29. </template>