V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zjsxwc
V2EX  ›  程序员

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

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

    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  
       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   ·   我们的愿景   ·   实用小工具   ·   900 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 20:53 · PVG 04:53 · LAX 13:53 · JFK 16:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.