vue3+vite使用jsx和tsx详情

vue3+vite使用jsx和tsx详情

目录

安装@vitejs/plugin-vue-jsx

配置vite.config.js

使用实战

第一种写法使用this

第二种写法

第三种写法

安装@vitejs/plugin-vue-jsx yarn add -D @vitejs/plugin-vue-jsx npm i -D @vitejs/plugin-vue-jsx 配置vite.config.js ... import vueJsx from '@vitejs/plugin-vue-jsx'; export default defineConfig({   plugins: [vueJsx(), ...],   ... }) 使用实战

新建xxx.tsx或者xxx.jsx,注意不再是vue为后缀

第一种写法使用this

使用了this,个人不太推荐

import { defineComponent, ref } from 'vue'; export default defineComponent({   setup(){     const str = ref<string>('tsx的使用');     const clickFunc1 = () => {       console.log('没有参数');     }     const clickFunc2 = (msg: string = '默认值') => {       console.log(msg);     }     return {       str,       clickFunc1,       clickFunc2     };   },   render(){     return (       <>         <div class='async'>{this.str}</div>         <button onClick={this.clickFunc1}>不传参数点击</button>         <button onClick={() => this.clickFunc2('额外参数')}>传参数点击</button>       </>     );   } }) 第二种写法

函数体等价于setup,此方式无法获取到props与emits等等(可能我没有了解到),存在交互性强的也不建议使用,否则可以考虑

import { defineComponent, ref } from 'vue'; export default defineComponent(() => {   const str = ref<string>('tsx的使用');   const clickFunc1 = () => {     console.log('没有参数');   }   const clickFunc2 = (msg: string = '默认值') => {     console.log(msg);   }   const render = (     <>       <div class='async'>{str.value}</div>       <button onClick={clickFunc1}>不传参数点击</button>       <button onClick={() => clickFunc2('额外参数')}>传参数点击</button>     </>   );   return () => render; }) 第三种写法

比较推荐这种写法

import { defineComponent, ref } from 'vue'; export default defineComponent({   props: {     params: {       type: Object,       default: () => {}     }   },   setup(props){     const str = ref<string>('tsx的使用');     const clickFunc1 = () => {       console.log('没有参数');     }     const clickFunc2 = (msg: string = '默认值') => {       console.log(msg);       console.log(props);     }     return () => (       <>         <div class='async'>{str.value}</div>         <button onClick={clickFunc1}>不传参数点击</button>         <button onClick={() => clickFunc2('额外参数')}>传参数点击</button>       </>     );   } })

到此这篇关于vue3+vite使用jsx和tsx详情的文章就介绍到这了,更多相关vue3 jsx/tsx内容请搜索易知道(ezd.cc)以前的文章或继续浏览下面的相关文章希望大家以后多多支持易知道(ezd.cc)!

推荐阅读

    学习写字楼新选择6000元主流配置

    学习写字楼新选择6000元主流配置,,这种配置需要考虑双核心的办公和娱乐平台,充分考虑办公室的办公需求和娱乐需求,以约6000元的预算和cost-e

    酷睿I7 配置

    酷睿I7 配置,配置,玩家国度啦华硕 Rampage II Extreme(3800元)如果米不够,也可以把Extreme改为Gene,不过是小板内存推荐金士顿6G DDR3 2000骇

    提高3A四核羿龙II游戏配置的性能

    提高3A四核羿龙II游戏配置的性能,,以节能环保为主题的IT产业,目前3A低端平台处理器、主板芯片组、独立开发卡性能突出,特别是在与AMD的处理

    opporeno8参数配置及价格

    opporeno8参数配置及价格,面部,亿元,Oppo的荣誉2020年1月4日,接近屏幕关闭传感器是否支持双卡:支持oppor11splus什么时候上市的Oppo R11S P

    查看配置:酷睿i3530集展示办公平台

    查看配置:酷睿i3530集展示办公平台,,由于时间和精力的关系,我们不可能对所有的配置进行评论,希望我们能理解,我希望我们的评论能在那些需要帮

    3500元超额值学生娱乐结构的优化配置

    3500元超额值学生娱乐结构的优化配置,,作为一个DIY的主流用户领域的学生,每个用户51学生攒机的高峰。因为学生用户没有稳定的收入来源,攒机

    军用物资9000元z77游戏安装方案

    军用物资9000元z77游戏安装方案,,在英特尔Ivy Bridge平台,主板制造商z77主板已经有些无法抵御孤独。最近,有z77a-gd55 MSI主板经销商成立一