用 jsx 写 vue 组件
In 未分类 on 2017年07月17日 by view: 22,686
1

前言

我们平常写 vue 的组件时,一般都是用的是模版,这种方式看起来比较简洁,而且 vue 作者也推荐使用这个方式,但是这种方式也有一些它的弊端,例如模版调试麻烦,或者在一些场景下模版描述可能没那么简单和方便。

下面我们要讲的是如何在 vue 里面写 jsx,知道 react 的人应该都知道 jsx,jsx 的一个特性就是非常灵活,虽然有的人觉得 jsx 很丑陋,把逻辑都写到模版的感觉,但萝卜青菜各有所爱,适合自己适合团队的就是最好的。

在使用 jsx 之前我们需要安装一个 babel 插件(babel-plugin-transform-vue-jsx)
安装方式:

然后再.babelrc 里面添加:

接着我们就可以愉快地在 vue 里面编写 jsx 了。
Test.vue

可以看到我们把 jsx 写在了 render 方法里面,render 方法是 vue2.0 才支持的,用来提供对虚拟 DOM 的支持,也就是说只有 vue2.0 才支持 jsx 语法转换。

这里要注意的一点是 vue 里面编写 jsx 和在 react 里面的 jsx 语法还是有一点不一样的。
一下是一段覆盖大部分语法的 vue jsx 代码: