做单页应用,不用backbone等库,自己写个小框架的话
分形mvc过时了吗?
1
taoche 2015-06-08 09:21:56 +08:00 2
任何脱离应用场景就讲技术选择的都是耍流氓
|
2
clino 2015-06-08 10:23:09 +08:00
"分形mvc"是什么?我怎么google不到呢
|
3
sydneyzh OP @clino 就是说每个(功能)模块内部还有一套model(也可以叫做config data),dom method, even listener, 初始化等MVC结构。方便自由拆装。不知道现在还有没有更高明的轻量级框架概念,所以才问这个问题
|
4
quix 2015-06-08 10:36:40 +08:00
建议楼主提问时候描述精确详细一点, 不要造术语, 尽量带例子... 问得不仔细就不能怪别人回答不认真了.
|
6
clino 2015-06-08 11:15:35 +08:00
@sydneyzh 连google都不知道,你还能"以为大家都懂"? 不管是 分形mvc 还是 fmvc 都 google不到
这是什么书啊... |
7
yangmls 2015-06-08 11:26:17 +08:00
自己写的有把握比现在的轮子好吗?或者解决现在的轮子解决不了的问题?
|
9
gilgamesh 2015-06-08 11:28:43 +08:00
相比于抖机灵的回答,无意义空洞的提问更烦人。
|
11
sydneyzh OP @yangmls 您脑洞开大了。我题目已经说了,是简易框架。而且我没有说backbone是mvc,我知道很多人觉得说backbone称为mvc是一种冒犯,但我没有这么说。
|
12
101 2015-06-08 11:31:41 +08:00
Which book?
|
13
taoche 2015-06-08 11:32:09 +08:00
Single Page Application 也会分场景的。 你说的简单的单页面应用, 数据交互多不多,视图更新的频繁不频繁,等等。 这就是应用场景。
脱离应用场景谈 选择 backbone 还是其他类库或者框架 本来就不能一概而论。 MVC只是手段 而非目的。 最终的是为了保证应用的可维护和可拓展性让逻辑更清晰。 |
14
sydneyzh OP @gilgamesh 很多人爱抖机灵或调侃别人,只是因为自己不懂,感到被冒犯,又恰好是个话痨。不懂可以不要回答啊,却跑过来针对我。技术板块欢迎这样灌水么?
|
15
gilgamesh 2015-06-08 11:36:01 +08:00
2333, BackBone 是 model-collection-view
|
16
gilgamesh 2015-06-08 11:38:10 +08:00
并不,有可能是这个问题宽泛地让人无从回答,只好吐槽以想题主获得更多交互和有用信息便于回答。
|
17
sydneyzh OP |
19
yyfearth 2015-06-08 13:19:48 +08:00 1
@yangmls @gilgamesh Backbone 是一个比较标准的MVC框架
只是Class命名上不是按照 MVC 来命名的 Model 和 Collection 就是 Model (前者是一个或者是一堆而已) View 和 Router 实际上都是 Controller (我们在View里面绑定事件和处理时间和让Model+Template render出来 就是Controller干的事情了 Router 就不用说了) HTML template 或者说 DOM 才是 MVC 里面的 View 由于 DOM 才是真正的渲染结果和交互事件来源 所以才是真正的 View 但是一般后端 MVC 框架里面 view 目录一般都是放一些 jsp php 模板 所以说模板是 View 也 OK |
20
yangmls 2015-06-08 16:16:56 +08:00 1
@yyfearth 主要它缺了一部分东西,就是 Model 和 DOM 的绑定,View 实现的是一个弱控制的玩意,不能双向绑定,甚至连单向绑定都比较残废,对子孙元素精细控制起来也很麻烦。
而且 backbone 的倾入性很低,不像 angular 那样选了它其他只能按它的规则来,它可以和像 React 这样的组合起来玩,这大概是为什么一般称它为 MV* 框架的原因吧。 |
22
taoche 2015-06-08 17:39:31 +08:00
backbone 所谓的mvc 的C 是Collection,集合不是控制器目的是不一样的。 backbone的 view层承担了部分Controller的职能, 所以并没有像传统意义上MVC做层次划分。 所以它不是严格意义上的mvc。
|
23
taoche 2015-06-08 17:43:33 +08:00 1
@yangmls 至于backbone的 单向数据绑定, 所以下个定论,backbone的 单向绑定一点都不残废,至于双向数据绑定就向它官网上说的,不需要双向绑定。
react 也说了双向数据绑定在大型应用中容易出现混乱。 前端的概念就是这样,一直再“革命” |
24
yangmls 2015-06-08 20:52:09 +08:00
@taoche angular 的双向绑定是可选的,它也能实现单向绑定,如果拿 backbone 的单向绑定和 angular 的比,那么它就是残废的。
当然 backbone 也能实现完整的单向绑定,但要做的工作很多,几乎是帮 backbone 补坑,当然这不算坑,因为这就是 backbone 的设计思想,Jeremy 大神是个有代码洁癖的人。 如果一个需求,是一个列表,列表有很多 rows,row 里面还有很多 items,那要实现精细的控制,这个工作就非常繁琐,要至少三个 View (list row item),要处理 collection 的 reset 和 add,要处理 model 的 change 和 delete,change 还要细分到 attribute 上,View 还要作手动的关联,数据量上来,你还不能 append,还得用 DocumentFragment 优化。 这不是残废是什么? |
25
yyfearth 2015-06-09 01:44:21 +08:00
@yangmls MVC 并不需要M+V的绑定
只要 M+Template->HTML/DOM 就可以了 或者简单的单项绑定 一般来说双向绑定的框架往往是MVVM 至于MV*框架 是 MVC MVP MVVM 等的总称而已 |
26
yyfearth 2015-06-09 01:54:16 +08:00
@yangmls Backbone 本来就不该和 Angular 在这个方面比
而且由于 Angular 是个 MVVM 框架 双向或者单项绑定 并不是发生在View和Model之间 而是 View和View Model之间 Model和View Model还是不一样的 Data binding本来就很少在MVC框架里面支持 一般都是在MVP和MVVM的框架里面提供 而且你看下传统的MVC框架 包括Java的还是全宇宙最好的PHP 他们的模版也不是完全的和Model自动绑定 连单项绑定都不是 所以 Backbone 完全符合MVC的 只是由于它太Light weight 用起来肯定没有其他框架那么方便 只提供最基本的结构 但是你可以整合很多很多的小library或者框架来让整框架变的方便 |