在Vue3中使用class component、注解和TSX!

一、安装vue-facing-decorators

vue-facing-decorators文档

yarn add -D vue-facing-decorator @rollup/plugin-babel @babel/plugin-proposal-decorators @babel/plugin-proposal-class-properties vite-plugin-babel
  • vite.config.ts配置
import vueJsx from '@vitejs/plugin-vue-jsx'

export default defineConfig({
 plugins: [
   vueJsx({
     babelPlugins: [
       ["@babel/plugin-proposal-decorators", { "legacy": true }],
       ["@babel/plugin-proposal-class-properties", { "loose": true }]
     ]
   }),
   babel({
     babelHelpers: 'bundled',
     extensions: ['.js', '.jsx', '.ts', '.tsx', '.vue'],
     plugins: [
       ["@babel/plugin-proposal-decorators", { "legacy": true }],
       ["@babel/plugin-proposal-class-properties", { "loose": true }]
     ]
   })
 ]
})

二、使用vue-facing-decorators

// Comp.render.tsx
import { Component, toNative } from "vue-facing-decorator"

export default function render () {
 return <></>
}

// Comp.ts
import { Component, toNative } from "vue-facing-decorator"
import render from "./Comp.render.tsx"

@Component({
 render
})
class Comp extends Base {}

export default toNative(Comp)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容