注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

阿当的博客

世界是个游乐场

 
 
 

日志

 
 

从mvc谈前端的路由设计和框架  

2016-08-24 17:12:59|  分类: js,html5 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

关于mvc中“路由”的设计,我很看不惯前端的路由设计照抄服务端路由。各位可以从这个角度反思一下路由设计的问题:

1、服务端没有路由机制,是否可以完成工作?答案是可以,但职责不清,分块工作没做好,所以我们引入了mvc 

2、服务端加入路由设计后,路由事实上连接了哪两个部分?答案是http请求和相应的义务逻辑

3、将所有的程序拆成“静态的定义”和“动态的执行”的话,服务端是由什么驱动静态的定义跑起来的?答案是http请求对吧?如果没有http请求充当驱动力量的话,整个程序全是静态的放在那里对吧?

4、回到前端来。前端没有路由能不能工作?答案是能,毫无疑问。

5、前端需要路由吗?答案是不一定,如果我们是个单机应用,没有服务端,是不是就完全不需要url路由了?那么这种情况下,路由承担的分块工作是否仍然是极其有价值的,该通过什么来实现?

6、服务端http请求是唯一的“驱动力量”(定时脚本什么的不算),所以控制好http请求,就分开了静态声明和动态执行逻辑处理。前端呢?前端什么是驱动力量?是http请求?不对吧?应该是DOM和BOM事件,没有DOM和BOM事件,前端定义的对象和函数一个也跑不起来,对吧?那么前端照搬服务端url路由是对的思路吗?

7、如果路由是需要的,而url路由是错的,那么应该拿什么来做路由呢?答案是全局自定义事件,路由一个很重要的作用,是将controller中的逻辑和驱动分块开来,而controller和controller之间解耦,谁也不用知道对方,如果需要多个controller之间配合,靠全局自定义事件来路由协调,全局自定义事件的传参可以实现controller之间的解耦。作用域、扩展性、多人合作问题迎刃而解。

8、这就是09年底开始我思考的前端自己的mvc,11年年初成型,我想了1年多,得出的方案,并且在之后我做了数年的数个SPA中得到了很好的验证。我反对前端照搬服务端url路由的原因在此。组件化+OO化+自定义事件路由+数据单向绑定才是我个人认同的正确方式,而前端的mvc也应该有自己的变化,不该照搬服务端的那套——路由+controller+ORM+模板引擎。前端的模板引擎没什么必要,解决不了大问题,和服务端的模板引擎解决的问题不是一个层面和量级的。

9、这是思路,不是框架。前端不需要重框架,应用层的技巧比框架重要。而轻框架,价值在哪儿?大概在于范式,让多人写出来的代码和一个人写出来的差不多,requirejs的意义在此。在这个意义上,jquery于今天最大的价值恐怕也是这个。


  评论这张
 
阅读(80)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018