index.tsx 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { Button, Sticky, Tab, Tabs } from "vant";
  2. import { defineComponent, KeepAlive, ref } from "vue";
  3. import { RouterView, useRoute } from "vue-router";
  4. import TheHeader from "../../components/TheHeader";
  5. import styles from "./index.module.less";
  6. export default defineComponent({
  7. name: "indexApp",
  8. setup() {
  9. const route = useRoute();
  10. const active = ref(route.name as string);
  11. return () => (
  12. <div class={styles.layout}>
  13. <div class={styles.sticky}>
  14. <TheHeader />
  15. <Tabs
  16. class={styles.tabs}
  17. active={active.value}
  18. color="var(--van-primary-color)"
  19. line-width="26px"
  20. >
  21. <Tab to="/" title="首页" name="home"></Tab>
  22. <Tab to="/music" title="谱库" name="music"></Tab>
  23. <Tab to="/video" title="视频" name="video"></Tab>
  24. <Tab to="/down" title="下载" name="down"></Tab>
  25. </Tabs>
  26. </div>
  27. <RouterView
  28. v-slots={{
  29. default: ({ Component }: any) => {
  30. return (
  31. <KeepAlive>
  32. <Component is={Component} />
  33. </KeepAlive>
  34. );
  35. },
  36. }}
  37. ></RouterView>
  38. </div>
  39. );
  40. },
  41. });