问前端, react 的 jsx 与 vue 的模板语法哪个更方便? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
zjsxwc
V2EX    程序员

问前端, react 的 jsx 与 vue 的模板语法哪个更方便?

  zjsxwc
zjsxwc 2018-03-20 09:55:01 +08:00 4739 次点击
这是一个创建于 2763 天前的主题,其中的信息可能已经有所发展或是发生改变。

react 是这种完全以 js class 层面管理与组织代码,感觉会了 js 自然就会了 react。

vue 模板语法在感觉要更像 html。

第 1 条附言    2018-03-20 11:19:36 +08:00
跟着 react 文档写 xo 游戏走了一步,感觉 jsx 很强大,但 jsx 也比 vue 模板更辣眼睛。而且 jsx 应该可以做到运行时动态返回 jsx,vue 模板写死了,运行起来后好像不能变
27 条回复    2018-03-20 21:51:05 +08:00
cloudzqy
    1
cloudzqy  
   2018-03-20 10:11:23 +08:00
虽然我用 react,但是我喜欢模板语法。
react 的 issue 上早期就很多不满意 jsx 的,我记得那个 issue 有人提出用三目来解决条件渲染的问题,下面一堆。可是一堆三目也辣眼睛呀,一个 v-if 多爽。
反正就是各有千秋,可是 jsx 更辣眼睛。
ycz0926
    2
ycz0926  
   2018-03-20 10:13:56 +08:00
站在一个前端新手的角度,接触 vue 和 react 后,更喜欢 react (组件化的概念)
zenxds
    3
zenxds  
   2018-03-20 10:18:43 +08:00
习惯问题,react 刚出来怎么看都是在开历史倒车,现在用久了也挺 shuang
Lxxyx
    4
Lxxyx  
   2018-03-20 10:19:07 +08:00 via Android
react。因为是纯 JS 的东西。Vue 是写起来方便,但是出了问题就很头疼了
maichael
    5
maichael  
   2018-03-20 10:33:10 +08:00
React 是在 js 中嵌了 HTML,而 Vue 是在 HTML 中嵌了 js。

当然,你也可以在 Vue 中使用 jsx,也可以在 React 中使用 template (区别是 Vue 有自带的 jsx 实现,React 只有社区的 template 实现)。

如果你说的是 jsx 和 template 之间的比较,那么我觉各有优劣,前者对循环之类的语法能够处理的很好,但是对一些简单的判断的处理又很蹩脚。

当然,看 React 的更新趋势,迟点也许能看到在 jsx 里写 template 的可能。
hlwjia
    6
hlwjia  
PRO
   2018-03-20 10:35:50 +08:00
react + 1 比较认同 js 里嵌 html

vue 也写过,都很不错,只是更认同 react 的理念
miyalee
    7
miyalee  
   2018-03-20 10:53:21 +08:00
一个 js 里写 html,一个 html 里写 js,看个人习惯咯
solobat
    8
solobat  
   2018-03-20 10:57:17 +08:00
react 理念不错,不过 jsx 确实没有 vue-template 写着爽
chairuosen
    9
chairuosen  
   2018-03-20 10:57:50 +08:00
如果你要写复杂灵活的渲染逻辑,用 Jsx。
如果你要快速的写出简单的渲染逻辑,用 vue。
mars0prince
    10
mars0prince  
   2018-03-20 11:00:02 +08:00
vue 更方便,但是复杂了就是 react,vue 的 jsx 和 render 函数及其简陋,约等于不能用
djyde
    11
djyde  
   2018-03-20 11:12:45 +08:00
函数式地写 UI 本身是个好东西,但是 JSX 比 template 难用很大的原因在于 Javascript 这门语言太... 像 if else 这种问题,其实用例如 ReasonML 这种语言,pattern matching 就能解决这种问题。
zhuangzhuang1988
    12
zhuangzhuang1988  
   2018-03-20 11:17:31 +08:00
jquery + 字符串拼接
这才爽。
chairuosen
    13
chairuosen  
   2018-03-20 11:20:03 +08:00
vue 模板的局限在于,你能实现的逻辑都是官方 directive 或者自己 directive 预先设计好的逻辑,一旦有什么想扩展的地方,要么在 method 写一个方法来做,要么再写一个 directive,render 逻辑就分散在各处了比较乱。
还有一个缺点是 directive 必须基于某个 vnode,有些时候你不得不套一些无意义的 div,比如 v-for 套 v-if,或者多层 if else。
aoaione
    14
aoaione  
   2018-03-20 11:22:27 +08:00
mark
notreami
    15
notreami  
   2018-03-20 11:31:49 +08:00
都不满意。
不能单纯的只讲 React、Vue。一个工程,怎么可能只用一个框架就可以了,前端的配置,以及各种库。实在是头疼。。
折腾半天,突然觉得,项目复杂度不高,还是 Jquery + bootstarp 方便。
qiuyk
    16
qiuyk  
   2018-03-20 11:33:40 +08:00
我觉得只是习惯问题,习惯了其实都挺方便的,就像加不加分号一样。我猜写后端的估计更喜欢模板,写前端的估计更喜欢 jsx。更纠结的问题应该是 react 和 vue 的各种概念吧,特别是 react 那一堆。
crs0910
    17
crs0910  
   2018-03-20 11:41:45 +08:00
大部分 UI 逻辑都可以用 template 解决,加上双向绑定开发速度已经很快了。不满足的时候可以自己写 directive 或者直接用 render function
notedown
    18
notedown  
   2018-03-20 11:43:22 +08:00
需求简单的.react 根据好看的代码.
我 vue 也是用 jsx 语法
cuzfinal
    19
cuzfinal  
   2018-03-20 11:47:10 +08:00
我感觉 vue 的更方便
zhjie
    20
zhjie  
   2018-03-20 11:48:34 +08:00
问题是哪个方便,我选 vue
exonuclease
    21
exonuclease  
   2018-03-20 12:27:18 +08:00 via iPhone
小项目 vue 舒服 大点的 灵活性要求高的还是 react
suzic
    22
suzic  
   2018-03-20 12:52:38 +08:00 via Android
我觉得 html 模板做的好的应该是 angular,vue。
react 那个看起来太乱了
duan602728596
    23
duan602728596  
   2018-03-20 13:17:33 +08:00
我选择 jsx
hjdtl
    24
hjdtl  
   2018-03-20 13:22:34 +08:00
这两个都用过,熟悉了之后,各有优点吧。写的最舒服的还是 jade 模板。
hansnow
    25
hansnow  
   2018-03-20 13:29:41 +08:00
React 爽就爽在从头到尾都在写 JS,JSX 作为一种 JS 描述 DOM 结构的语法糖已经很赞啦,如果到处都是 createElement 那代码简直没法看了
zkaip
    26
zkaip  
   2018-03-20 18:18:04 +08:00
React 是 JS 为中心, Vue 是模板快速开发为中心, 自己喜欢那个就用哪个
xiaojie668329
    27
xiaojie668329  
   2018-03-20 21:51:05 +08:00 via iPhone
我比较熟悉 vue,但是不喜欢 .vue 文件这种形式,经常用 render 函数直接写...最近在学 react,更喜欢 react 加上 styled-component 这种形式。
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     930 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 30ms UTC 22:38 PVG 06:38 LAX 15:38 JFK 18:38
Do have faith in what you're doing.
ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86