Vue3中使用tsx文件

1. 安装

npm install @vitejs/plugin-vue-jsx -D

2. 配置vite.config.ts

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'
import vueJsx from "@vitejs/plugin-vue-jsx"

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    vueJsx()
  ],

  resolve: {
    alias: {
      // 设置别名
      '@': path.resolve(__dirname, './src'),
    },
  },
})

3. 修改tsconfig.json

    "jsx": "preserve",
    "jsxFactory": "h",
    "jsxFragmentFactory": "Fragment",

4. 使用tsx

  • 直接返回标签
export default function(){
  return (<div>熏悟空</div>)
}
  • 返回一个渲染函数
import {defineComponent} from "vue"

export default defineComponent({
  data(){
    return {
      age:23
    }
  },
  render(){
    return (<div>{this.age}</div>)
  }
})
  • 使用setup方式
import {defineComponent} from "vue"

export default defineComponent({
  setup(){

    return () => {
      return (<div>熏悟空</div>)
    }
  }
})
<template>
  <div>
    <xwk></xwk>
  </div>
</template>

<script setup lang=ts>
import xwk from "@/App"
</script>

tsx 中取值使用{},可以使用v-show,不能使v-if, 使用ref不会解包需要.vaule

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当在 Vue3 遇到 TypeScript 文件报红(通常显示为红色波浪线或错误信息)的情况,这通常是由于类型检查器无法识别某个语法、变量类型不匹配,或者缺少必要的导入和配置。以下是一些可能的原因和解决方法: 1. **类型定义缺失**:如果你尝试使用 Vue 的 TypeScript 配置,但尚未安装或正确配置 `@vue/cli-plugin-typescript`,则会找不到 Vue 或其组件的官方类型定义。请确保已安装并更新到最新版本。 ```sh npm install @vue/cli-plugin-typescript --save-dev ``` 2. **属性类型错误**:检查你在 TypeScript 类型声明是否准确地指定了 Vue 组件的 props、data 或 methods 类型。确保所有数据类型都符合预期。 3. **接口或模块导入错误**:如果你从外部导入了其他 TypeScript 文件,确保导入路径正确,并且引用的类型已经导出。 4. **ES6+语法问题**:Vue3 支持 ES6+,一些新的特性如解构赋值、箭头函数等可能会导致类型检查器困惑。检查是否有未正确处理的语法问题。 5. **错误的tsconfig.json配置**:确认你的 `tsconfig.json` 是否设置了正确的编译目标(`target`),以及是否启用了 Vue 的类型检查插件 (`compilerOptions.types` 或 `vue`)。 如果还是不清楚问题所在,你可以按照以下步骤排查: - 清除缓存:`npm cache clean --force` - 重新构建项目:`npm run serve` - 使用 `npx tsc` 命令检查单个文件的类型问题 - 检查 VueVue.d.ts 文件是否是最新的,如果不是,替换为官方提供的。 对于更具体的问题,提供具体的错误信息会有助于找到解决方案。如果有任何疑问,请附上相关的错误日志,以便我能给出更精准的答案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值