JSX 是什么
JSX
是一种 Javascript
的语法扩展,JSX = Javascript + XML
,即在 Javascript
里面写 XML
,因为 JSX
的这个特性,所以他即具备了 Javascript
的灵活性,同时又兼具 html
的语义化和直观性
为什么要在 Vue 中使用 JSX
有时候,我们使用渲染函数(render function
)来抽象组件,渲染函数不是很清楚的参见官方文档, 而渲染函数有时候写起来是非常痛苦的,如下所示:
createElement(
'anchored-heading', {
props: {
level: 1
}
}, [
createElement('span', 'Hello'),
' world!'
]
)
其对应的模板是下面:
<anchored-heading :level="1">
<span>Hello</span> world!
</anchored-heading>
这显然是吃力不讨好的,这个时候就派上 JSX 上场了。在 Vue 中使用 JSX,需要使用 Babel 插件,它可以让我们回到更接近于模板的语法上,接下来就让我们一起开始在 Vue 中写 JSX 吧
开始
快读使用 vue-cli 创建一个 Vue 项目:
# 直接回车即可
vue create vue-jsx
安装依赖:
npm install @vue/babel-preset-jsx @vue/babel-helper-vue-jsx-merge-props
配置.babelrc
:
module.exp