vue3+tsx

1.安装jsx插件

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

2.插件配置(vite.config.ts)

        在vite.config.ts文件中配置jsx,配置如下:

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

export default defineConfig({
  plugins: [
    vue(),
    vueJsx(),
  ],
});

3.使用

        1.在tsx文件中没有template模板样式以及style样式

                代码如下:

import { defineComponent } from 'vue';

export default defineComponent({
setup(){
  return ()=>(
    <div class="ersd">
    <h1 class="abc">我是一级路由首页</h1>
  </div>
    )
}
})


#在vue页面中使用该tsx文件
<template>
    <test/>
</template>
<script lang="ts" setup>
import test from './test'
</script>

        2.在.vue文件中书写tsx代码

                代码如下:

<script lang="tsx" >
import { defineComponent } from 'vue';

export default defineComponent({
setup(){
  return ()=>(
    <div class="ersd">
    <h1 class="abc">我是一级路由首页</h1>
  </div>
    )
}
})

</script>
<style scoped lang="scss">
.ersd {
  width: 100%;
  background: green;
}
.abc{
  color:red;
}
</style>

此时,代码的样式也可生效。 

        3.在tsx中return代码注意事项以及vue代码差别

        1.注意事项

        reuturn单节点可直接返回,如果多个节点,则需使用<></>将代码全部包裹起来。

        2.代码差别
        1.v-if  =》三目运算符

        vue代码

<template>
 <div>
  <div v-if='flag' >flag为true</div>
  <div v-else >flag为false</div>
 </div>
</template>

        tsx代码

return ()=>(
<div>
 {
    flag ? <div>flag为true</div> : <div>flag为false</div>
}
 </div>
)
        2.v-for  =>map循环方式

        vue代码

<template>
    <div v-for="item in items" :key="item.index">{{item.name}}</div>
</template>

        tsx代码

return () => (
  <>
    {
      items.map((item) => <div>{item}</div>
    }
  </>
)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值