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

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

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

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

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

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

    未来不好说,感觉这些东西比如 react ng2 其实没啥大区别,未来不管手机还是 VR ,用组件肯定是大方向,只不过不一定是网页了。
    Owenjia
        14
    Owenjia  
       2016-05-29 15:44:55 +08:00
    感觉以后会跟现在的一些图形库一样,浏览器提供各个组件,后端给个布局和自定义样式,然后喂数据。
    444683462
        15
    444683462  
       2016-05-29 16:06:27 +08:00
    什么是单页应用 谢谢
    jin5354
        16
    jin5354  
       2016-05-29 16:48:25 +08:00   ❤️ 1
    新一代框架主推的极致组件化、函数式渲染视图、状态机模型在构建大型应用时都能极大提高开发效率。
    如果你学习了这几个框架之后还是觉得以前的 jquery+插件模式好,估计是你做的项目太简单了,功能点太少。杀鸡焉用牛刀?
    学习这几个框架真的不难,这种要求都算高,只能说市面上低端前端太多
    chengzi
        17
    chengzi  
       2016-05-29 17:00:28 +08:00
    wpf 现在还好吧,主要是 web 的流行抢去了原本是桌面的份额。以前的 wpf 效率确实成问题,但现在的硬件跑 wpf 应用很流畅的。并且现在微软在退的 uwp 开发,其实用的还是 wpf 那一套,知识换了个概念,东西基本没变。只希望微软不要作者坐着又抛弃 uwp 就好了
    charlie21
        18
    charlie21  
       2016-05-29 17:34:05 +08:00
    越来越贴合桌面 GUI 开发的思路,是对的。因为那是 “经过时间检验” 的东西
    667722yhq
        19
    667722yhq  
       2016-05-29 18:02:37 +08:00 via Android
    tt
    667722yhq
        20
    667722yhq  
       2016-05-29 18:10:48 +08:00 via Android
    667722yhq
        21
    667722yhq  
       2016-05-29 18:11:43 +08:00 via Android
    pasturn
        22
    pasturn  
       2016-05-29 18:48:44 +08:00
    不弄复杂点,前端怎么拿到高薪水
    Xrong
        23
    Xrong  
       2016-05-29 19:25:12 +08:00
    同感
    itfanr
        24
    itfanr  
       2016-05-30 13:25:40 +08:00   ❤️ 1
    @444683462 自己去百度下吧 SPA
    flyingfz
        25
    flyingfz  
       2016-05-30 15:40:25 +08:00
    我们是个小公司(前端人员规模在 5 人左右),开发模式 就是用 react + redux + webpack + 后端 api , 实现 组件式 开发。开发效率说不上高多少,但至少和原来的 JQuery 差不多。但维护性好很多。

    的确,招人,特别是招到合适的人比较难。

    所以,我们的方式都是招应届生培养,看个人能力,快则两个星期,一般都需要 1 个月左右,能上手做事。
    招人的时候,要注意一下基本的 js , http 协议 等基础知识 ,就 OK 了。
    -------------------
    目前比较倾向于招有一定工作经验的人,大家如果有意向或者有介绍的,非常欢迎 @ 我。
    大家可以多交流交流。
    flyingfz
        26
    flyingfz  
       2016-05-30 15:42:01 +08:00
    忘记了, 我们公司在广州,番禺,市桥。
    KuroNekoFan
        27
    KuroNekoFan  
       2016-05-30 16:54:12 +08:00   ❤️ 1
    觉得后端渲染比组件化开发好,楼主是专门做后端,然后随便弄几下前端的吧?
    KuroNekoFan
        28
    KuroNekoFan  
       2016-05-30 16:55:21 +08:00   ❤️ 1
    @flyingfz 住南郊的路过
    flyingfz
        29
    flyingfz  
       2016-05-30 17:07:45 +08:00   ❤️ 1
    @KuroNekoFan 欢迎交流: QQ :八 一 一 0 一 一 ⑨ ⑥

    :)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5108 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 01:16 · PVG 09:16 · LAX 18:16 · JFK 21:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.