如何在CDN模式下配置并使用Vue 3的JSX语法进行开发?
在CDN模式下使用Vue 3 + JSX的配置方案
1. 引入必要CDN资源
在HTML中引入三个核心资源:Vue 3运行时库、浏览器端编译JSX的babel-standalone,以及Vue官方的JSX编译插件:
<!-- Vue 3 核心库 --> <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script> <!-- Babel独立版,用于浏览器端编译JSX --> <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script> <!-- Vue 3 JSX编译插件 --> <script src="https://unpkg.com/@vue/babel-plugin-jsx@1/dist/babel-plugin-jsx.min.js"></script>
2. 配置Babel识别Vue JSX
编写JSX代码的<script>标签需要指定type="text/babel",并通过data-presets和data-plugins配置Babel参数,确保它能正确解析Vue的JSX语法:
<script type="text/babel" data-presets="env" data-plugins="@vue/babel-plugin-jsx"> // 在这里编写你的Vue JSX代码 </script>
3. 完整代码示例
下面是一个可直接运行的Demo,包含组件定义、JSX渲染逻辑:
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>Vue 3 CDN + JSX Demo</title> </head> <body> <div id="app"></div> <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script> <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script> <script src="https://unpkg.com/@vue/babel-plugin-jsx@1/dist/babel-plugin-jsx.min.js"></script> <script type="text/babel" data-presets="env" data-plugins="@vue/babel-plugin-jsx"> const { createApp, defineComponent, ref } = Vue; // 用JSX定义带状态的组件 const Counter = defineComponent({ setup() { const count = ref(0); const increment = () => count.value++; // 返回JSX渲染函数 return () => ( <div> <p>当前计数:{count.value}</p> <button onClick={increment}>点击加1</button> </div> ); } }); // 挂载根应用 createApp({ render() { return ( <div> <h1>Vue 3 CDN + JSX 开发</h1> <Counter /> </div> ); } }).mount('#app'); </script> </body> </html>
注意事项
- 版本兼容:
@vue/babel-plugin-jsx的版本需与Vue 3版本匹配,建议使用最新稳定版。 - 性能限制:浏览器端实时编译JSX会有额外性能开销,仅适合开发阶段或小型项目;生产环境建议提前将JSX编译为普通JavaScript。
- 语法支持:若需使用Composition API语法糖(如
<script setup>),CDN模式下暂不支持,需使用传统的setup函数写法。
内容的提问来源于stack exchange,提问作者XGG
相关产品推荐
相关产品推荐

