作者cyclone350 (老子我最神)
看板Ajax
标题[讨论] 初探 reactjs 疑问
时间Sat Mar 5 22:56:49 2016
大家好
最近常常听到 reactjs,听说很不错用很多优点之类的,然後执行速度很快
所以今天简单看一下 reactjs 的介绍说明及 Hello World
看完後有几个疑问让我很困扰
1. reactjs 速度很快...
从下面两个地方看了说明
http://www.slideshare.net/JustinWu13/j-queryreact-js
http://andyyou.logdown.com/posts/234130-reactjs-reactjs-decrypt
主要理解是 reactjs 有 virtual dom,他会把一系列的 dom 更新先存在 virtual dom
,
最後由 reactjs 统一更新到 dom 底下。
但是,我对 angularjs 理解也是有差不多的概念,我们异动一般的 js 物件
当 js 物件产生变化後,angularjs 将这些异动部分更新到 dom (所谓的$apply)
既然 angularjs 跟 reactjs 都一样是统一帮使用这将异动值更新到 dom
那为什麽 reactjs 会比较快?
是 reactjs 更新 dom 时有进行最佳化吗? 如果是这样,那 angularjs 的 $apply
有做最佳化的话,是否就可跟 reactjs 一样?
想了这些之後,直接去 google,看到一篇文章
http://blog.500tech.com/is-reactjs-fast/
嗯? 文章大意是说是在 reactjs conf 2015 时用的范例比较不那麽公平
事实上只要简单修改 angularjs demo 的程式码,就会发现他们速度其实差不了多少
看了这篇文章後更怀疑了 reactjs 是比较快的说法了...
2. reactjs 很简单很好学
就我的理解,reactjs 很像是 angularjs 的 directive...
reactjs 有用 jsx,这样的混搭的语法糖对熟悉 js 的人也许很好用
但真的好学吗? 这也许有点主观... 但是我真的没感觉可以很简单上手
3. trace code 方便吗?
因为比起撰写程式,我们更常阅读程式
所以能够快速地看懂程式码并且找到 bug 是很重要的
这样请问各位有用过 reactjs 的前辈了
相较於 jQuery 与 angularjs, reactjs 的阅读性如何?
4. 开发时程
相较於其他 js framework,reactjs 开发时程是花更多时间还是更少时间? (开发时
间含测试程式)
因为本人没实际用过,也没特别深入了解相关机制
想请问各位前辈用 reactjs 的心得
还是我在观念的理解上有误? 也欢迎指证
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.193.192.133
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Ajax/M.1457189813.A.157.html
1F:→ rarex: react只有提供view的部份 後面的架构要看你怎麽搭配 03/06 23:56
2F:→ rarex: 如果用flux redux这些可能要花时间了解和熟悉一下 03/06 23:56
3F:→ rarex: 个人觉得react的元件化方式比directive好用太多了... 03/06 23:57
4F:→ dlikeayu: 你比较的东西是错误的...一个是lib一个是framework一个 03/07 02:48
5F:→ dlikeayu: 是render引擎(较类似於mvvm) 03/07 02:52
6F:→ dlikeayu: 开发快就coffe+angularjs,但效能的话... 03/07 02:54
7F:→ dlikeayu: 也有人是玩backbone+reactjs+react-material-ui(或其它) 03/07 02:57
8F:→ dlikeayu: 但开发就要很熟练要有自己模组,相对轻巧很多 03/07 02:57
9F:→ dlikeayu: 但两者一样都能用gruant或gulp来减少一堆开发环节跟编译 03/07 02:58
10F:→ dlikeayu: 上的问题(预转coffe 预转jsx) 03/07 02:58
11F:→ dlikeayu: 如果对flux有兴趣,可以先去理解dependency injection 03/07 03:04
12F:→ dlikeayu: 这是angular最常用到的,这样比较好比较差别 03/07 03:07
13F:推 zoko741235: 感谢楼上 刚刚去查了BACKBONE+REACT的应用 很有趣 03/08 02:30
14F:推 mrbigmouth: ......backbone + react!?? 这两个能一起用??? 03/08 16:11
15F:→ y2468101216: 可以啊 03/08 16:23
16F:推 TonyQ: reactjs 这种大型 lib performance 不会是最重要的优点 03/09 18:23
17F:→ TonyQ: 另外你用 angular base 去想的话只会得到 angular 最简单 03/09 18:24
18F:→ TonyQ: 但两者观念其实有差,你这样比法会有问题 03/09 18:24
痾... 已经两个人说这样比法有问题
让我解释一下
1. 效能
y大给的网址有解释了
2. 好不好学
关系到工程师一开始使用时的开发成本及维护成本
3. 好不好 trace code
关系到维护成本
4. 开发时程
关系到开发成本
我觉得比这四样东西没问题啊,
2, 3, 4 点是很主观的 (根据团队不同也许会不一样结果)
所以询问有使用过人的经验
我并没有把他们的观念、程式架构、使用方式来做比较。
19F:→ TonyQ: 但你既然也写了 angular ,没什麽特别必要的话继续写无妨 03/09 18:24
20F:→ TonyQ: backbone 跟 react 一起用当然可以啊,没什麽问题。 03/09 18:25
※ 编辑: cyclone350 (123.193.196.217), 03/09/2016 23:30:02
21F:→ dlikeayu: 要维护喔,先从AMD,CMD开始了解,然後试着使用 03/12 03:19
22F:→ dlikeayu: browserify或webpack去做模组管理;最後就是像写 03/12 03:20
23F:→ dlikeayu: namespace那样去分配你档案位置的结构,基本上就已经够 03/12 03:20
24F:→ dlikeayu: 乾净了 03/12 03:20
25F:→ mrbigmouth: backbone跟react是怎麽个一起用法? 03/15 18:10
26F:→ mrbigmouth: react component应该完全取代backbone的view吧? 03/15 18:10
27F:→ mrbigmouth: collection跟model有办法塞进state里面吗? 03/15 18:10
28F:→ mrbigmouth: 还是说绑change事件再去set component的state? 03/15 18:10
29F:→ mrbigmouth: 还是你说的一起用单纯指各写各的? 03/15 18:11
30F:→ dlikeayu: 为什麽塞不进?无论是在render或onmounted时都可以啊 03/16 02:28
31F:→ dlikeayu: backbone model本身就有update事件了,官方文件在view 03/16 02:29
32F:→ dlikeayu: 里面都只是在绑一层呼叫model那边的update 03/16 02:29
33F:推 dlikeayu: 而且你问问题的方式不太像在“问问题”.... 03/16 02:33
34F:→ mrbigmouth: 据我所知react的state必须是immutable object 不能是 03/16 10:43
35F:→ mrbigmouth: backbone那种物件吧 03/16 10:43
36F:推 mrbigmouth: 也就是说 react跟backbone一起用 要不就是舍弃react 03/16 10:51
37F:→ mrbigmouth: 本身的state change=>re render模式 改成用backbone 03/16 10:52
38F:→ mrbigmouth: 的event触发react的render (react有办法这样改吗?) 03/16 10:52
39F:→ mrbigmouth: 不然就是舍弃backbone的event driven机制 单纯使用 03/16 10:53
40F:→ mrbigmouth: model/collection的各种方法以方便render处理 03/16 10:54
41F:→ mrbigmouth: 我的猜测是这样 感觉都不太有必要合用 欢迎指正 03/16 10:55
42F:推 mrbigmouth: 再讲清楚一点好了 据我理解 React 跟 Backbone这两个 03/16 11:02
43F:→ mrbigmouth: 框架有根本的理念差异 前者是单向资讯流通 後者是全 03/16 11:03
44F:→ mrbigmouth: 事件导向 因此而来的设计APP方法也不太相同 两个一起 03/16 11:03
45F:→ mrbigmouth: 用的结果好像就只能舍弃其中一个(同时舍弃该框架好用 03/16 11:04
46F:→ mrbigmouth: 的地方) 暂时我是感觉不到两个框架并有什麽好处 03/16 11:04
47F:→ mrbigmouth: 这是我的想法 欢迎指正 03/16 11:05