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概念的框架,是比较好的。

KnockoutJS的使用及分析相关推荐

  1. MVVM架构~knockoutjs系列之从Knockout.Validation.js源码中学习它的用法

    说在前 有时,我们在使用一个插件时,在网上即找不到它的相关API,这时,我们会很抓狂的,与其抓狂,还不如踏下心来,分析一下它的源码,事实上,对于JS这种开发语言来说,它开发的插件的使用方法都在它的源码 ...

  2. Angular vs. KnockoutJS:您应该知道的基本差异和相似之处

    I faced the same situation recently when I had to choose one from Angular vs KnockoutJS. The most pe ...

  3. 【Golang源码分析】Go Web常用程序包gorilla/mux的使用与源码简析

    目录[阅读时间:约10分钟] 一.概述 二.对比: gorilla/mux与net/http DefaultServeMux 三.简单使用 四.源码简析 1.NewRouter函数 2.HandleF ...

  4. 2022-2028年中国自动驾驶系统行业现状调研分析报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了中国自动驾驶系统行业市场行业相关概述.中国自 ...

  5. 2022-2028年中国阻尼涂料市场研究及前瞻分析报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了中国阻尼涂料行业市场行业相关概述.中国阻尼涂 ...

  6. 2021-2028年中国阻燃装饰行业市场需求与投资规划分析报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了中国阻燃装饰行业市场行业相关概述.中国阻燃装 ...

  7. 2022-2028年全球与中国漂白吸水棉市场研究及前瞻分析报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了全球与中国漂白吸水棉行业市场行业相关概述.全 ...

  8. 2022-2028年全球与中国青苔清洗剂市场研究及前瞻分析报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了全球与中国青苔清洗剂行业市场行业相关概述.全 ...

  9. 2022-2028年全球与中国氢碘化物市场智研瞻分析报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了全球与中国氢碘化物行业市场行业相关概述.全球 ...

最新文章

  1. javascript宿主对象之window.history
  2. sqlserver查看被锁表、解锁
  3. 自定义日历控android,Android 一个日历控件的实现小记
  4. 织梦缩略图自动补齐绝对路径_织梦生成文章内容缩略图时自动加上域名绝对路径...
  5. JavaScript学习系列之执行上下文与变量对象篇
  6. Linux下的日志维护技巧
  7. 数据分析师市场需求研究
  8. 计算机考研去航空专业,北京航空航天大学计算机专业考研方向有哪些?
  9. 如何用unity做一个合成图片的程序
  10. excel 将两列数据合并,以逗号分隔
  11. Amaze UI的分页设计
  12. 苹果手机计算机怎么放桌面,苹果手机iPhone装了App在桌面找不到图标的解决办法...
  13. windows下的host文件在哪里,有什么作用?
  14. 360校园招聘2015届技术类笔试题(一)
  15. CentOS7-启动网卡-查看IP地址-查看端口-管理端口
  16. Ory Hydra 详解之入门
  17. html怎么垂直对其,html – 垂直对齐方法
  18. IE浏览器输入框反应慢的解决方式
  19. Matlab的filtfilt函数解析与C++实现
  20. Android网络防火墙实现初探

热门文章

  1. TTS(TextToSpeach)语音朗读实例
  2. 设计师常用的7款界面设计工具!
  3. css html制做王者荣耀网站,css3配合js做王者荣耀3D旋转购买英雄效果以及源码展示...
  4. Filter基础知识
  5. 镁光ddr3布线规则_PCB设计要点-DDR3布局布线技巧及注意事项
  6. MySQL卸载干净的全过程
  7. windows下连接服务器
  8. 02.Java开发环境搭建
  9. 自学考试-“运筹学基础”
  10. bbr是什么?有什么用?如何安装使用?