19

从 KnockoutJS 到 VueJS

 4 years ago
source link: https://www.tuicool.com/articles/36b2ueb
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

KnockoutJS 和 vuejs 都是前端JavaScript的MVVM模式的实现框架, 也有很多其他的实现;

很多人知道Angularjs(2),Reactjs,Vue.js,以及直接操作DOM的jQuery库, 但是没听说过 KnockoutJS;

其实部分c_sharp程序员可能看到过KnockoutJS, 且一些PHP程序员在magento商城项目上也用过KnockoutJS (注意: 当年没有vuejs,所以技术选型时用了KnockoutJS,且一路走到黑...现在是2019.11)

介绍magento

2005年,Varian公司的员工Roy Rubin和Yoav Kutner基于osCommerce项目做二次开发,

2007.08.31,定名为Magento,

2008.03.31,去掉osCommerce的底层代码,重构并发布第一个稳定的免费开源版本,

2009年,鲍勃·施瓦茨(Bob Schwartz)加入团队, 成为总裁, 然后努力让Magento在全球范围内取得成功;

2009.03,比osCommerce更受欢迎,几星期后发布第一个稳定的企业版本(付费),

2011.02,eBay收购Magento, 2011.06 eBay成为Magento唯一股东;

2015年,Permira(璞米资本,国际投资公司,以欧洲为基地的大型私募基金公司), 从eBay中收购magento,

2018.05.22,Adobe以16.8亿美元收购Magento,并减持竞争对手Shopify商城项目的股份(Shopify是不开源的很简洁清新的SaaS服务商,Magento是开源的能定制化开发的万金油, 盈利模式都是主题/插件的付费商城);

诞生

微软于2010.07.05发布KnockoutJS 1.0版本,兼容IE6, https://knockoutjs.com/downloads/index.html

而VueJS 0.6.0版本发布于2013.12.03, https://github.com/vuejs/vue/releases/tag/0.6.0

学习顺序

历史缘故, 我先接触VueJS, 因项目需要, 所以需要回首去学习KnockoutJS; 我们能发现KnockoutJS存在很多VueJS的雏形/影子, 学习起来... a piece of cake!

以下就是一些笔记(未完待续...)

MVVM模式

三部分:Model, View, ViewModel, 合并就是 MVVM;

Jv6JVva.png!web

Model

页面View Html的来源数据,存储为变量data,或者组件component的props属性。常用AJAX/WebSocket向服务端请求得到。

ViewModel

抽象对象,封装了视图层View的:属性,计算属性,方法,事件绑定,html模板来源。

View

可见、互动的UI界面,展现形式是html标签和css样式, 文本内容来自于Model层, 用户操作会触发事件, ViewModel的事件回调函数会让Model发生变化, 同时刷新View的内容。

Knockout三大核心

属性监控与依赖追踪

声明式绑定

模板机制


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK