dcloudio / uni-app

A cross-platform framework using Vue.js
https://uniapp.dcloud.io
Apache License 2.0
40.19k stars 3.64k forks source link

Vue3.x 下注册全局组件无效的问题 #2872

Closed wiidz closed 3 years ago

wiidz commented 3 years ago

问题描述 环境是 微信小程序 + mac + HBuilderX v3.2.3.20210825 HBuilder创建的项目,注册全局组件,console.log(app)显示组件已注册,但是在使用的时候,无法正确识别和渲染全局组件。 查看unpackage里的mp-weixin下的app.json,usingComponent为空

但是如果我在局部注册的时候,组件是正常的

// main.js
import Body from "@widget/Title.vue";
export function createApp() {
 const app = createSSRApp(App)
  app.component("Title", Title);
return {
app
}
}
// Title.vue
<template>
 <text>Hello World</text>
</template>
// index.vue
<template>
 <Title></Title>
</template>

image

我认为可能是全局组件没有被正确识别

wiidz commented 3 years ago

还有一个问题,如果放在一起问不合适,我另开 同样的环境下,编译H5,会报别名的错,但小程序不会

// vue.config.js
module.exports = {
    chainWebpack: config => {
        // 别名
        config.resolve.alias
            .set('@widget', resolve('assets/widget'))
...
// main.js
import Title from "@widget/Title.vue"; // 此处报错,找不到文件
wiidz commented 3 years ago

还有一个问题,是vue2的环境下,组件slot内部的值发生变化,页面不会渲染 使用forceUpdate依然无效 所以我想升到vue3看看行不行

wiidz commented 3 years ago

新的alpha版本什么时候上?蛮着急的

fxy060608 commented 3 years ago

新的alpha版本什么时候上?蛮着急的

着急使用的话,可以手动替换编译器,查看:https://github.com/dcloudio/uni-app/commit/40c59751501b4b508c5a9c79d7e51ae849ae0d38 将提交中的三个文件替换到对应的HBuilderX编译器中 HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader

wiidz commented 3 years ago

新的alpha版本什么时候上?蛮着急的

着急使用的话,可以手动替换编译器,查看:40c5975 将提交中的三个文件替换到对应的HBuilderX编译器中 HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader

请问9.19的那个版本 解决这个问题了吗,解决了我就close

yoyo837 commented 2 years ago

这个问题好像没有解决呢, cli 项目