[讨论] 初探 reactjs 疑问

楼主: cyclone350 (老子我最神)   2016-03-05 22:56:49
大家好
最近常常听到 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 的心得
还是我在观念的理解上有误? 也欢迎指证
作者: rarex (╰(〒皿〒)╯)   2016-03-06 23:56:00
react只有提供view的部份 后面的架构要看你怎么搭配如果用flux redux这些可能要花时间了解和熟悉一下个人觉得react的元件化方式比directive好用太多了...
作者: dlikeayu (太阳拳vs野球拳)   2016-03-07 02:48:00
你比较的东西是错误的...一个是lib一个是framework一个是render引擎(较类似于mvvm)开发快就coffe+angularjs,但效能的话...也有人是玩backbone+reactjs+react-material-ui(或其它)但开发就要很熟练要有自己模组,相对轻巧很多但两者一样都能用gruant或gulp来减少一堆开发环节跟编译上的问题(预转coffe 预转jsx)如果对flux有兴趣,可以先去理解dependency injection这是angular最常用到的,这样比较好比较差别
作者: zoko741235 (台北金城武)   2016-03-08 02:30:00
感谢楼上 刚刚去查了BACKBONE+REACT的应用 很有趣
作者: mrbigmouth (大嘴先生)   2016-03-08 16:11:00
......backbone + react!?? 这两个能一起用???
作者: y2468101216 (芸)   2016-03-08 16:23:00
可以啊
作者: TonyQ (自立而后立人。)   2016-03-09 18:23:00
reactjs 这种大型 lib performance 不会是最重要的优点另外你用 angular base 去想的话只会得到 angular 最简单但两者观念其实有差,你这样比法会有问题但你既然也写了 angular ,没什么特别必要的话继续写无妨backbone 跟 react 一起用当然可以啊,没什么问题。
作者: dlikeayu (太阳拳vs野球拳)   2016-03-12 03:19:00
要维护喔,先从AMD,CMD开始暸解,然后试着使用browserify或webpack去做模组管理;最后就是像写namespace那样去分配你档案位置的结构,基本上就已经够干净了
作者: mrbigmouth (大嘴先生)   2016-03-15 18:10:00
backbone跟react是怎么个一起用法?react component应该完全取代backbone的view吧?collection跟model有办法塞进state里面吗?还是说绑change事件再去set component的state?还是你说的一起用单纯指各写各的?
作者: dlikeayu (太阳拳vs野球拳)   2016-03-16 02:28:00
为什么塞不进?无论是在render或onmounted时都可以啊backbone model本身就有update事件了,官方文件在view里面都只是在绑一层呼叫model那边的update而且你问问题的方式不太像在“问问题”....
作者: mrbigmouth (大嘴先生)   2016-03-16 10:43:00
据我所知react的state必须是immutable object 不能是backbone那种物件吧也就是说 react跟backbone一起用 要不就是舍弃react本身的state change=>re render模式 改成用backbone的event触发react的render (react有办法这样改吗?)不然就是舍弃backbone的event driven机制 单纯使用model/collection的各种方法以方便render处理我的猜测是这样 感觉都不太有必要合用 欢迎指正再讲清楚一点好了 据我理解 React 跟 Backbone这两个框架有根本的理念差异 前者是单向资讯流通 后者是全事件导向 因此而来的设计APP方法也不太相同 两个一起用的结果好像就只能舍弃其中一个(同时舍弃该框架好用的地方) 暂时我是感觉不到两个框架并有什么好处这是我的想法 欢迎指正

Links booklink

Contact Us: admin [ a t ] ucptt.com