npx degit dcloudio/uni-preset-vue#vite-ts my-vue3-project
pnpm add @vitejs/plugin-vue-jsx -D
// 一系列将 vue-jsx 添加到项目里的操作
写一个简单的带图片的组件
import { defineComponent } from "vue";
interface Props {
imgSrc: string;
}
export default defineComponent({
props: {
imgSrc: { type: String as string, required: true, default: "" },
},
setup({ imgSrc }: Props) {
return () => (
<image src="https://ask.dcloud.net.cn/uploads/avatar/001/69/58/05_avatar_mid.jpg?v=1615114858">
</image>
);
},
});
在页面将其引用,h5 上看不到图片,因为标签用的是 <image>
浏览器不能识别,运行到手机端可以正常显示;改为 <img>
标签,浏览器能正常显示,手机端无法正常显示。
j***@vip.qq.com
我发现了出问题的原因, 要使用jsx,必须在src目录下新建vite.config,并且加载jsx插件, 这样把src拖到hb里面就会造成easycom失效, 删掉vite.config就正常了,还需要研究下vite.config是不是和hb默认的配置有冲突。
2023-09-06 19:03
2***@qq.com
回复 j***@vip.qq.com: 我感觉是他vite配置里面有个uni插件,这个插件干预了模板解析过程。现在就是配置vite过后,jsx能用但是默认的组件不能正常的渲染。jsx编译过程没有经过他的rollup插件.
2023-09-14 16:09
a***@163.com
这个问题后来解决了吗 老哥
2024-04-22 14:38