长刀之夜
长刀之夜
  • 发布:2020-08-07 14:48
  • 更新:2023-09-15 13:26
  • 阅读:8232

uniapp 怎么动态按需加载组件

分类:uni-app

比如主页面可能根据权限引入不同的组件显示不同的类容,并不是引入所有的组件再用v-if显示隐藏

this.theme = () => import(./cockpit/${this.toDisplayMgtArr[i].egmList[j].graphicalType}) 这种动态引入在vue项目里面没问题,在uniapp项目没用

2020-08-07 14:48 负责人:无 分享
已邀请:
Bocheng

Bocheng

请问您这问题有解决么?怎么解决的呢?

5***@qq.com

5***@qq.com

请问这个问题解决了吗

Kytrun

Kytrun

web的按需加载主要原因是减少初次的网络请求,加快速度。但是APP资源都在本地,按需加载有什么必要呢?

  • 长刀之夜 (作者)

    按接口需求加载组件

    2021-03-04 14:55

  • superMiao

    回复 长刀之夜: 找到解决办法了吗 我试了几种都不行 说是uniapp不支持动态加载组件

    2021-07-01 14:15

  • 长刀之夜 (作者)

    回复 superMiao: 经过n次试验uniapp不支持

    2021-07-06 11:32

L***@163.com

L***@163.com

请问现在解决了吗

1***@qq.com

1***@qq.com

一下方式只使用于h5

<template>  
    <view class="uc-component">  
        <view></view>  
    </view>  
</template>  
<script>  
    import Vue from 'vue'  
    export default {  
        name:"uc-component",  
        props: {  
            name: {  
                type: String,  
                required: true  
            },  
            // 目录  
            directory: {  
                type: String,  
                required: false,  
                default: 'pages'  
            }  
        },  
        mounted(){  
            this.dynamicImport(this.name);  
        },  
        watch:{  
            name(value){  
                this.dynamicImport(value);  
            }  
        },  
        methods:{  
            dynamicImport(fileName) {  
                // #ifdef H5  
                require([`@/pages/${fileName}/${fileName}.vue`],component => {  
                    const Component = Vue.extend(component.default);  
                    new Component().$mount(this.$el.children[0]);  
                });  
                // #endif  
            }  
        }  
    }  
</script>  
使用方式  
<uc-component :name="curPage"></uc-component>
l***@163.com

l***@163.com

请问, 该问题解决了吗?

徳傲

徳傲

vue3可以用这种方式:import.meta.globEager("/pages/test/*/.vue");

参考:https://ext.dcloud.net.cn/plugin?id=12558

  • 小龙虾h

    globEager这个api是vite的已经弃用了

    2023-11-07 10:17

  • 徳傲

    回复 小龙虾h: 确实不太好用,部署到生产环境不太行了

    2023-11-10 12:57

Diligent_UI

Diligent_UI - 【插件开发】【专治疑难杂症】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=193663(微信搜索飘逸科技UI小程序直接体验)】【骗子请绕道】问题咨询请加QQ群:120594820,代表作灵感实用工具小程序

使用v-if判断一下吧

招财猫

招财猫

使用动态组件component的is属性的话,是没办法应用easycom的动态加载模式,直接赋值is,会提示找不到,这个能怎么处理?

  • 招财猫

    我们也是这个问题,太不友好了,相当于全量组件引入,然后按需显示哪个

    2023-10-30 10:28

要回复问题请先登录注册