uni-app 鸿蒙模拟器下 "^u-(.*)": "@/components/uview-ui/components/u-$1/u-$1.vue" 引入会导致白屏

发布于 1周前 作者 itying888 来自 Uni-App

uni-app 鸿蒙模拟器下 “^u-(.*)”: “@/components/uview-ui/components/u-$1/u-$1.vue” 引入会导致白屏

信息类别 详细信息
产品分类 uniapp/App
PC开发环境 Windows
PC版本号 win10
HBuilderX 正式
HBuilderX版本号 4.29
手机系统 HarmonyOS NEXT
手机版本号 HarmonyOS NEXT Developer Beta2
手机厂商 模拟器
手机机型 模拟器
页面类型 vue
Vue版本 vue3
打包方式 云端
项目创建方式 HBuilderX

示例代码:

"^u-(.*)": "@/components/uview-ui/components/u-$1/u-$1.vue"

操作步骤:

"^u-(.*)": "@/components/uview-ui/components/u-$1/u-$1.vue"

预期结果:

"^u-(.*)": "@/components/uview-ui/components/u-$1/u-$1.vue"

实际结果:

"^u-(.*)": "@/components/uview-ui/components/u-$1/u-$1.vue"

bug描述:

"easycom": {  
    "autoscan": true,  
    "custom": {  
        "^u-(.*)": "@/components/uview-ui/components/u-$1/u-$1.vue"  
    }  
}

要是使用 “^u-(.*)”: “@/components/uview-ui/components/u-$1/u-$1.vue” 引入组件
模拟器 打开就白屏。。
去掉这个就好了


更多关于uni-app 鸿蒙模拟器下 "^u-(.*)": "@/components/uview-ui/components/u-$1/u-$1.vue" 引入会导致白屏的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app 鸿蒙模拟器下 "^u-(.*)": "@/components/uview-ui/components/u-$1/u-$1.vue" 引入会导致白屏的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在uni-app中使用自定义组件时,如果在鸿蒙模拟器下遇到因组件引入方式导致的白屏问题,可能是由于路径解析、组件注册或组件本身代码存在问题。针对你提到的 ^u-(.*): @/components/uview-ui/components/u-$1/u-$1.vue 这种动态引入方式,我们可以尝试以下几种方法来定位和解决问题。

首先,确保你的路径和文件结构是正确的。这里是一个简化的代码示例,展示如何在uni-app中正确引入和使用uView UI组件库中的组件,同时避免可能的路径解析问题:

  1. 确保组件路径正确: 在main.jsmain.ts中全局注册uView组件库(假设你使用的是uView UI):

    import Vue from 'vue';
    import uView from '@/components/uview-ui';
    Vue.use(uView);
    

    如果你是按需引入,确保路径解析正确。例如,手动引入一个组件:

    import MyComponent from '@/components/uview-ui/components/u-button/u-button.vue';
    Vue.component('MyComponent', MyComponent);
    
  2. 使用webpack别名: 在vue.config.js中配置webpack别名,确保^u-(.*)路径解析正确:

    const path = require('path');
    
    module.exports = {
      configureWebpack: {
        resolve: {
          alias: {
            '@': path.resolve(__dirname, 'src'),
            'u-components': path.resolve(__dirname, 'src/components/uview-ui/components')
          }
        }
      }
    };
    

    然后在组件中这样使用:

    <template>
      <u-button></u-button>
    </template>
    
    <script>
    import UButton from 'u-components/u-button/u-button.vue';
    export default {
      components: {
        'u-button': UButton
      }
    };
    </script>
    
  3. 检查组件代码: 确保引入的组件代码没有错误,特别是组件的name属性是否与标签名一致,以及组件内部是否有导致渲染失败的代码。

  4. 使用静态引入作为临时解决方案: 如果动态引入持续导致问题,考虑使用静态引入作为临时解决方案,直到找到动态引入问题的根本原因。

  5. 查看控制台日志: 在鸿蒙模拟器中查看开发者工具的控制台日志,可能会有更详细的错误信息帮助定位问题。

通过上述步骤,你应该能够定位并解决因组件引入方式导致的白屏问题。如果问题依旧存在,可能需要更深入地检查uni-app和鸿蒙模拟器的兼容性问题。

回到顶部