KnockoutJS的使用及分析

knockoutJS使用及分析

首先,为了不要让这篇文章是纯文字的,我去了knockout的官网顺了个logo过来……这里写图片描述
官网
之前的学习中碰上了SPA应用,刚好老师使用了学习成本低的KnockoutJS给我们讲解SPA和MV*(MVC,MVVM)应用。
从官网了解基本的API以及基础实例,使用nodeJS,expressJS框架作为后台,前端使用knockoutJS制作了一个虚拟项目。

1、MVVC架构了解—viewmodel

把后端逻辑放到前端处理,前端把view与viewmodel之间绑定,并且对viewmodel的数据进行逻辑处理。而后端则是通过ajax把viewModel和model进行数据交换。(meteor则是进一步,直接在前端操作mongoDB(子数据库),然后子数据库和主数据库会自动进行数据同步)

2、数据绑定

angular的数据绑定是使用脏检查事件。
knockoutJS可以选择为one way ,one time,two way绑定

ko.observalbe:对数据的get和set ko.computed:实时计算数据 applyBindings:对viewmodel进行应用。
data-binding对函数和数据绑定:click\event\value\text等值的绑定
Simple List:ko.observableArray

3、SPA

其实后台并没有太大改变,逻辑依然,只是把页面的处理逻辑交给了前端。让前端更加像一个APP。
SPA:Single Page Application。使用ajax和服务器及数据库交换数据:服务器传输时只需要传输json,不传页面。使界面更加友好。个人感觉KnockoutJS适合开发SPA的原因就是MVVM的模型,多个Page共享同一个ViewModel,使信息传递更加简单。而angular则再进一步,使用Service、directive、controller给一个应用划分好层次,使结构清晰。ps:个人比较喜欢不同的page使用不同的控制器。

4、总结

KnockoutJS把逻辑移到前端后,但个人感觉只是提供一个雏形,而没有像angular一样进一步的给逻辑分层,让逻辑更加清晰,使代码维护更加简单。KnockoutJS仅提供了数据绑定功能实现了ViewModel。而angular则给人感觉实现了前端的MVC分层。
但是无可否认的是,knockoutJS使用的开发思路和jQuery一致,都是先渲染DOM,再操作DOM。因此不需要太大的改变开发思路,导致学习成本没angular那么高。如果作为一个学习理解SPA和MVVM概念的框架,是比较好的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值