目前的 react / angular / vue 里面的组件方案,未来应该会被其它方案替代。

2016-05-29 13:13:23 +08:00
 daimoon
个人觉的 react / angular / vue 之类的组件化的思想,现在还不成熟。增加了工程的复杂度(相比现在的套页面模板技术,如 php 的 smarty , python 的 django template/jinja 等等)。但是他的数据绑定思想确实比之前的 jq 体系简单。我觉的,最后他们能留下来的,是数据绑定。而组件化,还得被其它技术替代 -- 学习 vue 的 component 有感
6617 次点击
所在节点    程序员
29 条回复
bdbai
2016-05-29 13:32:17 +08:00
不做单页应用的话,后端模板渲染就够了。
daimoon
2016-05-29 13:39:54 +08:00
@bdbai 嗯,很多新人过于推崇单页应用。这东西我真是觉的好看不好用。人员要求高,开发效率未必高,用户体验未必好。做聊天什么的还好,其它场景就呵呵了。
neoblackcap
2016-05-29 13:46:29 +08:00
组件化这个方案必然还会存在,现在的 web 就是在走以前桌面的那一套。 WPF 就早有双向绑定了, XAML 之类的对应 html ( jsx ),但是你的类实现一样是组件化的(class ,继承)。
至少在我看来 3 年内这样的模式还是很有效的。
daimoon
2016-05-29 14:04:13 +08:00
@neoblackcap 简单实用的最后能活下来。目前的组件化方案,太复杂。无论 vuex / flux ,父子组件的通信设计复杂度太高,需要理解的概念太多。个别人能理解,在工程领域,不太实用。适合一个牛人做,不太适合团队协作做。 wpf 最后还是失败了。从过去十年看, Web 端希望一种技术实现组件基础架构设计成功的案例还真没有。反而倒是插件式的,比如 jq 系列的, jqtable , typehead 之类这种类型的组件活下来了--依赖性很低,拿来即用。某种程度上 bootstrap 也算组件吧。这类就够用了。
daimoon
2016-05-29 14:05:50 +08:00
或者说我觉的,专注于功能实现,而非技术架构的组件方案有生命力。开箱即用。
bdbai
2016-05-29 14:08:18 +08:00
@daimoon 看需求吧。交互多一点的就做单页应用好了,开发效率并不低的。
Lpl
2016-05-29 14:12:33 +08:00
做单页的话,感觉开发效率也不算太低啊。一个 app 出口,剩下都是 controller 获得数据,然后数据绑定
daimoon
2016-05-29 14:25:27 +08:00
主要是对人要求高。开发这个,拿 vue 来举例,要理解 vue 基础, vue component 机制,要会用 vuex ,要学习 vue-router 。还要学习 webpack 。但以前,就会 jquery ,就够了。而且 jq 是万能的。这个 compoents 机制,还指不定遇到什么坑,要变通解决。
learnshare
2016-05-29 14:25:55 +08:00
Polymer + ng2 或许会被 Google 搞起来
neoblackcap
2016-05-29 14:38:29 +08:00
@daimoon UWP 现在倒是用 WPF 的啊。我觉得要说 WPF 失败倒不如说桌面端已经没有以前那么流行了。你可以看看写游戏,写桌面多,写 Android 跟 iOS 的是不是用组件的嘛。
至于你说的父子组件通讯我就真不明白了, react 的组件压根就没有什么父子组件通讯啊。现行流行的 flux 实现 redux 就是维护一个状态机一样的做法,不同的事件改变状态机的状态,组件仅根据传入的 prop 来渲染结果,只有最上层的包裹组件去读取状态机的状态才会有 state 其他的组件都没有。
这很复杂么?就是维护状态机的做法而已,不见得有什么复杂。
daimoon
2016-05-29 14:53:32 +08:00
@neoblackcap 嗯,你说的对。我说的复杂,就是这种抽象到状态机的方法,对人的要求高。要求技术人员系统思维要好,对整体设计要求高。 你们现在前端团队多少个人啊?好招熟手吗?带一个新人要多长时间能上手呢?
neoblackcap
2016-05-29 15:15:32 +08:00
@daimoon 前端都不好招,不过我据一个超级无脑的比喻,维护状态机就跟查表一样。不同的事件对应一个状态。大概难就难在 NFA 到 DFA 这个转换上吧(这个的话看看编译器相关的书就好了,我学艺未精,刚看不就,就不献丑了),不过我觉得这个 NFA 到 DFA 大可由高级程序员去做,我觉得只有学过编译原理对这块应该是挺快的啊。
然后剩下的就是编写无状态组件的事情了。这样的事情你大可招几个实现生来做。毕竟前端的精髓就在你那状态机而已了。
我觉得多个状态除了状态机就没有什么好的方法管理了。若是仅仅靠组件间通信来暴力维护状态,迟早药丸。

若是状态机的这样的概念都理解不了,我觉得这样的人就应该考虑一下是否合适程序员这工作。状态机不是这几年才出现的东西,那是学界千锤百炼,业界实现了千千万万次才得出状态机是维护状态的利器这一结论。
若是觉得状态机不好,偏要弄其他东西取代它,小规模(状态少)倒是可以,大规模的真的迟早药丸。早日叫各位前端去读读别人编译原理里面跟状态机的内容才是正道啊。
fakefish
2016-05-29 15:16:01 +08:00
这叫要求高? vue 这种简单的东西瞄一眼就可以直接写了,没理清的翻一下文档就可以。

ng1 概念太多太杂 ng2 好很多了,概念比较统一,基础的一些用的容易,复杂一点上 rx 啥的需要额外理解。

组件化是极大提高开发效率的。

未来不好说,感觉这些东西比如 react ng2 其实没啥大区别,未来不管手机还是 VR ,用组件肯定是大方向,只不过不一定是网页了。
Owenjia
2016-05-29 15:44:55 +08:00
感觉以后会跟现在的一些图形库一样,浏览器提供各个组件,后端给个布局和自定义样式,然后喂数据。
444683462
2016-05-29 16:06:27 +08:00
什么是单页应用 谢谢
jin5354
2016-05-29 16:48:25 +08:00
新一代框架主推的极致组件化、函数式渲染视图、状态机模型在构建大型应用时都能极大提高开发效率。
如果你学习了这几个框架之后还是觉得以前的 jquery+插件模式好,估计是你做的项目太简单了,功能点太少。杀鸡焉用牛刀?
学习这几个框架真的不难,这种要求都算高,只能说市面上低端前端太多
chengzi
2016-05-29 17:00:28 +08:00
wpf 现在还好吧,主要是 web 的流行抢去了原本是桌面的份额。以前的 wpf 效率确实成问题,但现在的硬件跑 wpf 应用很流畅的。并且现在微软在退的 uwp 开发,其实用的还是 wpf 那一套,知识换了个概念,东西基本没变。只希望微软不要作者坐着又抛弃 uwp 就好了
charlie21
2016-05-29 17:34:05 +08:00
越来越贴合桌面 GUI 开发的思路,是对的。因为那是 “经过时间检验” 的东西
667722yhq
2016-05-29 18:02:37 +08:00
tt
667722yhq
2016-05-29 18:10:48 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/282015

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX