vue动态路由

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<template>
  <div>
    <component
      :is="currentCompoent['TP']"
    ></component>
     <component
      :is="currentCompoent['DP']"
    ></component>
  </div>
</template>
 
<script lang="ts">
import { defineComponent, onMounted, reactive, ref, toRefs, defineAsyncComponent, markRaw } from 'vue'
export default defineComponent({
  name: 'AboutView',
  components: {
  },
  setup () {
    const currentName:any = ref()
    const currentCompoent:any = reactive({
      TP: markRaw(defineAsyncComponent(() => import('../components/AaPage.vue'))),
      DP: markRaw(defineAsyncComponent(() => import('../components/BbPage.vue')))
    })
    const current = ref('DP')
    onMounted(() => {
      if (current.value === 'DP') {
        current.value = 'TP'
        return
      }
      if (current.value === 'TP') {
        current.value = 'DP'
      }
    })
    return { currentCompoent, current, currentName }
  }
})
</script>
<style lang="less" scoped>
 
</style>
 
 
便利数组
<template>
  <div>
    <div v-for="(i,v) in dsfsdf" :key="v">
        <component :abc="i.page" :is="i.name"></component>
    </div>
  </div>
</template>
 
<script lang="ts">
import { defineComponent, ref, defineAsyncComponent, markRaw, onMounted } from 'vue'
export default defineComponent({
  name: 'AboutView',
  components: {
  },
  setup () {
    const currentName = ref()
 
    const dsfsdf = ref()
    onMounted(() => {
      const arrdata = ['AaPage', 'BbPage']
      const sdfsdfsddf: { page: number; name: any }[] = []
      arrdata.forEach((res, index) => {
        dsfsdf.value.push(
          {
            page: index + 1,
            name: markRaw(defineAsyncComponent(() => import(`../components/${res}.vue`)))
          }
        )
        console.log(sdfsdfsddf)
        dsfsdf.value = sdfsdfsddf
      })
    })
    return { currentName, dsfsdf }
  }
})
</script>
<style lang="less" scoped>
 
</style>

  

posted @   zjxgdq  阅读(43)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
历史上的今天:
2021-05-24 vue li显示样式
点击右上角即可分享
微信分享提示