2***@qq.com
2***@qq.com
  • 发布:2023-06-27 11:53
  • 更新:2024-09-02 10:02
  • 阅读:362

【报Bug】component动态组件bug

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 22621.1702

HBuilderX类型: 正式

HBuilderX版本号: 3.8.4

手机系统: 全部

手机厂商: 苹果

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

测试过的手机:

所有

示例代码:
 <script>  
// uniapp中必须用显式导入 否则识别不了组件 component动态字符串不支持easycom也不能用require来导入  
import Game from '@/services/game/Base';  
import Sort from '@/components/game/Sort';  

const cmp = {  
    Sort  
};  
export default {  
    //支持  
    components: {  
        Sort  
    },  
    //不支持  
    components:cmp  
}  
</script>  

<template>  
    <div v-if="service">  
        <template v-for="item in pipe">  
            <Component v-if="current === item.no" :is="item.body" :context="expose" :localState="localState" @result="result"></Component>  
        </template>  
    </div>  
</template>  

操作步骤:

1、在当前页import引入一个组件,把这个组件对象声明在一个对象里,把这个对象赋值给components

预期结果:

1

实际结果:

1

bug描述:

1、component动态组件支持字符串,但是不完全支持easycom的组件名称,如果初始化是v-if包裹的(使用动态组件的easycom组件)那么该组件并不会被打包,等v-if=true的时候会出现空白的情况,如果没有v-if就正常。
2、组件引入只能用import 不支持require().default
3、必须在用component动态组件的页面显式import引入组件,不能先声明对象然后赋值到components对象上,否则貌似会被treeshaking忽略掉

2023-06-27 11:53 负责人:无 分享
已邀请:
Diligent_UI

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

is和v-if选择一个进行使用吧

  • 2***@qq.com (作者)

    里面的Component可以用computed处理不加v-if, 但最外层需要v-if 。因为后面Component可能会加兄弟元素 所以最外层的if不能省略掉 如果单独把component提取到v-if之外,那么布局就会出现问题

    2023-07-01 19:06

6***@qq.com

6***@qq.com

你好,请问你最后解决了吗

要回复问题请先登录注册