55

Knockout JS

95

React

Knockout JS
对比胜出方
React
vs
vs

%{comparison}:对比中的 30 个事实

Knockout JS vs React

Knockout JS
React

为什么Knockout JS优于React?

  • 具有双向数据绑定
    ?
  • 35KB小的文件体积,无依赖性
    ?

    43KBvs78KB
  • 使用一个模板引擎
    ?
  • 支持计算属性
    ?
  • 以MIT许可发布
    ?
  • 扩展HTML
    ?
  • 具有一个稳定的公开API
    ?
  • 拥有一个支持输入验证的流行插件
    ?

为什么React优于Knockout JS?

  • 模型是单纯的JavaScript对象
    ?
  • DOM操作程序库不受限
    ?
  • 使用JSX来制版
    ?
  • 可与其他MV*框架整合
    ?
  • 允许使用视图混合(mixins)
    ?
  • 可在服务器上进行渲染
    ?
  • 拥有一个支持动画的流行插件
    ?
  • 支持合成(部分)视图
    ?

一般资讯

模板引擎可使UI开发更加简单灵活。
2.支持计算属性
Knockout JS
React
允许应用属性功能来计算对象的属性。
3.使用JSX来制版
Knockout JS
React
JSX是一个制版引擎,允许开发者直接在他们的代码中进行标记,以供实时或预编译为单纯的JavaScript。这样避免了视图标记和代码的分离,并且使基于字符串的制版语言得到快速改善。
4.以MIT许可发布
Knockout JS
React
MIT许可是一个非常开放的许可证,允许未经授权的包括商业的所有用途。
5.扩展HTML
Knockout JS
React
一些人认为这是一个优势,因为它节省了使用另一种模板语言的支出。
可被用于部分替代另一框架,不需要移除剩余特性。

插件

拥有一个插件,包含便于制作视图动画的工具。
插件可在提交至服务器或服务器处理之前帮助验证客户输入。虽然这并不能替代服务器端的验证,但是可以显著提升用户体验。

库 & 包

并不要求或者严格提倡使用特定程序库(如jQuery,Zepto,或MooTools)来进行DOM操作。开发者可依据喜好来使用。
该节点程序包管理器亦可用于管理前端脚本。
Asynchronous Module Definition(异步模块定义)程序库允许简易模块化以及清洁编程。如果某个框架不兼容这些程序库,则它可能具有其他模块化内容的方式并解决依赖性,例如Dependency Injection(依赖注入)。
Bower是一个简便易用,类似npm的前端应用程序包管理器。

数据绑定

模型和视图可进行绑定,以相互更新。
这使得应用与REST服务或本地存储器(LocalStorage)之间的数据传输更为简便,同时运用getter和setter函数降低了复杂性。
视图可进行绑定,当一个可观察对象产生变化时会自动更新。
混合(Mixins)是一种编程技术,允许不同的对象共享
可进行扩展,实现模型和视图的相互更新。 这样会增加文件体积,但是更具有灵活性。
监控模型变化是一个知名的模式,某些情况下比“脏检查(dirty-checking)”表现更好。

性能

更小的文件体积意味着更快的读取速度。
支持可在服务器上进行预渲染的模板引擎,并可能提升页面读取速度,尤其是在低配置的设备上。
这极大地提升了搜索引擎的可检索性,并可能提升页面读取速度,尤其是在低配置的设备上。
允许使用类似jQuery Deferred的程序库来支持Promises函数式。在处理服务器响应时,Promise是回调函数的一个流行的替代方案。
5.异步更新DOM
Knockout JS
React
模型改变并不会立即导致视图更新,但是会进入队列并以组的形式进行分配。这比即时视图更新的表现好得多。

最佳的MV* 框架是什么?

展示全部
This page is currently only available in English.