Meteor 应用开发,前端选 Blaze, Angular 还是 React? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
russj
V2EX    前端开发

Meteor 应用开发,前端选 Blaze, Angular 还是 React?

  •  
  •   russj 2015-11-10 22:29:06 +08:00 3415 次点击
    这是一个创建于 3702 天前的主题,其中的信息可能已经有所发展或是发生改变。

    从 Meteor 1.2 开始,这三个框架都是官方支持的了。如果你开始一个新的 Meteor 项目,还没有确定用什么前端框架的时候,估计会遇到这个问题。

    Blaze

    Blaze 是这三个里最简单的,特别是用过 Handlebar 的话。几乎没有什么 learning curve ,直观、容易上手。它的问题是除非你只用 Meteor ,否则当你改用别的后端框架时,你得使用别的前端框架,所以不另外两个应用广泛。技能市场更小。

    Angular vs React

    其实这两者不好放在一起比较。因为 React 只涉及 View ,而 Angular 是一个完整的前端框架。这里只是比较他们作为 View 的场景。

    我曾经是一个 React 黑。因为 React 咋一看把啥都混在一起写。 HTML , CSS 和 Javascript 混在一个文件里,搞点语法糖,取名叫 JSX 。还看到有人说“ JSX :让人无法想像的历史倒退, W3C 通过 20 年将 “布局、样式、数据” 三者分离, Facebook 只花了几个月就能合并到一起了。” 当时觉得无比赞同。也有部分原因是自己已经对 Angular 投入了很多时间学习使用。人都是这样,对你用顺手了并且擅长的工具就会更喜欢,即使有更好的新工具出来。

    后来遇到好多写了多年前端的人几乎都是一致推荐 React 。 JSX 虽然刚开始看起来恶心,但还真是起到解耦和封装的作用,比只是简单地把文件分开的解耦更高级,达到逻辑了上的封装。而 Angular ,更符合后端转前端的人的思维,不同语言分开,大而全的 framework ,脏检查,双向绑定等等,都是老思维了。难怪 React 一出来基本就是压倒性的受欢迎。

    React 设计的理念肯定是超过 Angular 1.0 的。 React 的组件化,单向数据流和 Virtual Dom 是前端演化的方向。据说 Angular 2.0 也会有这些。但是 Angular 2.0 居然选择 TypeScript 。个人认为这是一步臭棋,把 learning curve 又提高了。不知道他们团队怎么想的,估计以为 ES6/7 遥遥无期,和微软合作时作为交换筹码?

    Meteor 可以作为 React 的一种 Flux 实现,他们两者的 Reactive 特性是很匹配的。 Angular 1.0 虽然号称也可以做到,但是实现并不理想。比如在异步时你得自己使用 $digest 来手动更新;脏检查机制给 reactivity 带来性能上的问题等等。

    结论

    如果不是维护历史项目,首选 React 。要快速上手 Meteor 可以先使用 Blaze 。

    http://jinglei.me/angular-huan-shi-react/

    6 条回复    2015-12-15 01:56:19 +08:00
    qdwang
        1
    qdwang  
       2015-11-11 00:32:05 +08:00 via Android   1
    TypeScript 是好东西 楼主不懂就不要乱喷。
    cxbig
        2
    cxbig  
       2015-11-11 00:56:40 +08:00
    React 可以配 Redux , Angular2 也可以玩玩,看自己喜好。
    maxiujun
        3
    maxiujun  
       2015-11-11 01:08:55 +08:00
    如果是我,维护历史项目才会去使用 react ,因为它只解决 view 的问题。
    如果新建项目才会选择 angular 这样的完整的框架。
    angular2 不知可以用 typescript ,不爽可以用 dart 。
    如果楼组选择困难,可以尝试了解一下 ember.js 。
    russj
        4
    russj  
    OP
       2015-11-11 15:47:14 +08:00
    @qdwang 是好东西,不过得花时间来学。这个时间本可以用在其他更有意义的地方的,比如学下 Go 语言什么的
    russj
        5
    russj  
    OP
       2015-11-11 15:50:37 +08:00
    @maxiujun 我可能没有说清楚。我是指维护已经使用了 Angular 的历史项目。 React 说是光是 View ,但是它带来的整个理念对于前端来说是很先进的,向真正的工程化接近了。
    dart 连 Google 自己都不玩了。
    hbkdsm
        6
    hbkdsm  
       2015-12-15 01:56:19 +08:00
    @maxiujun

    请教下 Ember.js 有哪些坑?从 Rails 过来接触 Ember 的,目前对 Ember.js 比较着迷。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3717 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 10:19 PVG 18:19 LAX 02:19 JFK 05:19
    Do have faith in what you're doing.
    ubao msn 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