100 行代码实现的 JavaScript MVC 样式框架

使用过 JavaScript框架(如 AngularJS, Backbone 或者Ember)的人都很熟悉在UI(用户界面,前端)中mvc的工作机理。这些框架实现了MVC,使得在一个单页面中实现根据需要变化视图时更加轻松,而模型-视图-控制器(mvc)的核心概念就是:处理传入请求的控制器、显示信息的视图、表示业务规则和数据访问的模型。

因此,当需要创建这样一个需要在单个页面中实现切换出不同内容的应用时,我们通常选择使用上述框架之一。但是,如果我们仅仅需要一个在一个url中实现视图切换的框架,而不需要额外捆绑的功能的话,就不必使用象Angular和Ember等复杂的框架。本文就是尝试使用简单、有效方法来解决同样的问题。

概念

应用中的代码利用urls中的“#”实现MVC模式的导航。应用以一个缺省的url开始,基于哈希值的代码加载应用视图并且将对象-模型应用于视图模板。

url格式像下面这样:

http://Domain Name/index.html#/Route Name

视图内容必须以{{Property-Name}}的方式绑定对象模型的值和属性。代码会查找这个专门的模板格式并且代替对象模型中的属性值。

以ajax的方式异步加载的视图会被放置于页面的占位符中。视图占位符可以是任何的元素(理想的情况是div),但是它必须有一个专门的属性,代码根据这个专门的属性来定位它,这样同样有助于代码的实现。当url改变时,会重复这个场景,另外一个视图被加载。听起来很简单吧!下面的流程图解释了在这个特定的实现中的消息跳转。

文章转载自 开源中国社区 [http://www.oschina.net]

时间: 2024-07-31 05:28:05

100 行代码实现的 JavaScript MVC 样式框架的相关文章

超级简单实现JavaScript MVC 样式框架

 本文给大家分享的是一则翻译过来的,由国外友人写的如何简单有效的实现javascript MVC样式框架,算是一个MVC的入门教程,希望大家能够喜欢.     介绍 使用过JavaScript框架(如AngularJS, Backbone 或者Ember)的人都很熟悉在UI(用户界面,前端)中mvc的工作机理.这些框架实现了MVC,使得在一个单页面中实现根据需要变化视图时更加轻松,而模型-视图-控制器(mvc)的核心概念就是:处理传入请求的控制器.显示信息的视图.表示业务规则和数据访问的模型.

超级简单实现JavaScript MVC 样式框架_javascript技巧

介绍 使用过JavaScript框架(如AngularJS, Backbone 或者Ember)的人都很熟悉在UI(用户界面,前端)中mvc的工作机理.这些框架实现了MVC,使得在一个单页面中实现根据需要变化视图时更加轻松,而模型-视图-控制器(mvc)的核心概念就是:处理传入请求的控制器.显示信息的视图.表示业务规则和数据访问的模型. 因此,当需要创建这样一个需要在单个页面中实现切换出不同内容的应用时,我们通常选择使用上述框架之一.但是,如果我们仅仅需要一个在一个url中实现视图切换的框架,而

利用100行代码动态创建并部署流程

1. 关于Activiti中的BPMN Model 在5.12版本中把各个模块进行了大幅度的划分,值得一提的就是activiti-bpmn-的几个模块(activiti-bpmn-converter.activiti-bpmn-layout.activiti-bpmn-model). activiti-bpmn-model:包含了BPMN2.0规范中部分对应的Java定义(也包括Activiti自己扩展的),描述了一些基本属性.结构: activiti-bpmn-converter:该模块负责对

用100行代码攻击比特币网络的俄罗斯男子

自称 Alister Maclin 的俄罗斯男子过去一周一直在攻击比特币网络.他发动的是所谓的伪造交易 ID 攻击(或称之为 malleability attack),它不具有危险性,只相当于比特币块链服务器收到了垃圾信息,但它会影响交易的确认,导致一些交易平台推迟比特币取款. Alister Maclin 接受采访时说,他只花了几个小时写了 100 行代码的脚本,脚本运行在虚拟机上,捕捉比特币网络广播的交易,然后使用略微不同的 ID 重新广播交易. 它导致交易确认的时间从以前的 10 分钟左右

100行代码实现最简单的基于FFMPEG+SDL的视频播放器(SDL1.x)【转】

转自:http://blog.csdn.net/leixiaohua1020/article/details/8652605 版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[-] 简介 流程图 simplest_ffmpeg_player标准版代码 simplest_ffmpeg_player_suSU版代码 结果 FFMPEG相关学习资料 补充问题     ===================================================== 最简单的

古城钟楼微博地支报时程序铛,100行代码实现,价值一天20万粉丝

古城钟楼 微博 铛 古城钟楼微博 地支 报时 自动 一天20万粉丝 程序 作者:http://txw1958.cnblogs.com/原文:http://www.cnblogs.com/txw1958/archive/2013/01/09/guchengzhonglou-weibo-timer.html 大家最近都在热议古城钟楼的红火.不是加V号.不是官方号.不是皇冠会员.没有拟人化,没有段子.没有运营.1天之内从1万不到的粉丝新增了20多万并且还在持续传播和增长粉丝.我不研究它是怎么红起来的,

iOS如何用100行代码实现简单的抽屉效果_IOS

前言 iOS中抽屉效果的简单实现现在很多应用中都使用到了,网上也有很多了例子,本文主要是通过简单的一些代码来实现的,有需要的可以一起学习学习. 下面是效果图 示例代码如下 #import <UIKit/UIKit.h> @interface MainViewController : UIViewController + (instancetype)mainViewControllerWithLeftViewController:(UIViewController *)leftViewContr

100行PHP代码实现socks5代理服务器_php技巧

前两天在B站上看到一个小伙纸100元组装个电脑打LOL画质流畅,突发奇想100行代码能(简单)实现个啥好玩的.我主要是做php开发的,于是就有了本文. 当然,由于php(不算swoole扩展)本身不擅长做网络服务端编程,所以这个代理,只是个玩具,离日常使用有点距离.如果想使用稳定可靠的加密(所以能禾斗学上网)代理,可以用这个:https://github.com/momaer/asocks-go也是100来行代码使用go实现. 写的过程中发现php多线程还是难的.比如我开始想每个连接新建一个线程

100行Android代码轻松实现带动画柱状图

为何要用带动画的柱状图呢? 最近,项目中遇到一个地方,要用到柱状图.所以这篇文章主要讲怎么搞一个柱子.100行代码,搞定柱状图! 圆角,头顶带数字.恩,这样用drawable也可以搞定.但是,这个柱子是有一个动画的,就是进入到界面的时候柱子不断的长高.这样的话,综合考虑还是用自定义View来做比较简便.效果如下图了: 完整Demo地址请到我的github下载地址: https://github.com/lixiaodaoaaa/ColumnAnimViewProject 关于尺寸 控件尺寸直接来