vue
中使用 jsx
语法
工作中主要使用技术是vue
,然后由于自学写过一些react
的 demo,对react
的jsx
语法比较感兴趣,因为其逻辑上束缚小,可以比较自由,特别是在vue
中开发时遇到较为复杂的功能组件时,感觉有点吃力,而vue
文档中也有对jsx
的介绍,所以就想在vue
中使用jsx
,然后研究学习了下,然后使用在了工作中。
格式对比
vue
1 | <script> |
template
写在最下面仅是个人习惯(一是习惯最开头注释写明文件属于及一些说明,而js
的注释比html
的注释看起来舒服,二是受到react
影响里,个人习惯了这样的阅读顺序)。
jsx
1 | /** |
jsx
其实就是把vue
中的template
内容放到了render()
函数里面了,并且有一些细节写法有些不一样。如:vue:""
,jsx:{}
注意:
jsx
中的onClick
要用箭头函数来调用方法。
注意对比
vue | jsx |
---|---|
v-model | vModel |
@click | onClick |
class | class |
{this.$slots.default} | |
v-if | &&(一元判断) |
v-if v-else | xx ? xx : xx(三元判断符) |
v-show | (无) |
总结
总的来说vue
中使用jsx
语法,阅读上并没有什么负担问题,更多的是如果没有学过react
的纯vue
开发者一看到可能就有点奇怪,但是只要不抗拒,稍微了解下也就没什么开发难度了,主要就是转换一个思维,把模版语法转换成javascript
的逻辑去开发就可以了。就是因为这样,所以才会比模版语法更自由,对复杂逻辑的处理束缚更小,开发更符合程序思维。