64

CanJS

95

React

CanJS
对比胜出方
React
vs
vs

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

CanJS vs React

CanJS
React

为什么CanJS优于React?

  • 9KB小的文件体积,无依赖性
    ?

    69KBvs78KB
  • 支持路由选择以及深层链接
    ?
  • 使用Promise函数式
    ?
  • 使用一个模板引擎
    ?
  • 支持计算属性
    ?
  • 以MIT许可发布
    ?
  • 具有一个稳定的公开API
    ?
  • 支持1早期的IE浏览器版本
    ?

    7vs8

为什么React优于CanJS?

  • 模型是单纯的JavaScript对象
    ?
  • 使用JSX来制版
    ?
  • 允许使用视图混合(mixins)
    ?
  • 可在服务器上进行渲染
    ?
  • 可与其他MV*框架整合
    ?
  • 拥有一个支持动画的流行插件
    ?
  • 异步更新DOM
    ?
  • 与第三方程序库整合良好,以启用Promises/A+支持。
    ?

一般资讯

模板引擎可使UI开发更加简单灵活。
允许应用属性功能来计算对象的属性。
JSX是一个制版引擎,允许开发者直接在他们的代码中进行标记,以供实时或预编译为单纯的JavaScript。这样避免了视图标记和代码的分离,并且使基于字符串的制版语言得到快速改善。
MIT许可是一个非常开放的许可证,允许未经授权的包括商业的所有用途。
可被用于部分替代另一框架,不需要移除剩余特性。
允许从一个模板内部将视图模板嵌套进高层视图

插件

拥有一个插件,包含便于制作视图动画的工具。
这表示该框架拥有一个活跃的生态系统以及广泛的社区支持,而且更加灵活,开发更为迅速。
包含公用程序,可使模型与其对应的服务器端表现同步,不需要编写jQuery样板文件ajax调用。

库 & 包

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

数据绑定

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

性能

更小的文件体积意味着更快的读取速度。
路由选择允许与浏览器网址进行交互。如果您正在开发单页面应用,这对于提供良好的用户体验来说非常重要。
拥有Promises/A+规格的内部应用。在处理服务器响应时,Promise是回调函数的一个流行的替代方案。
支持可在服务器上进行预渲染的模板引擎,并可能提升页面读取速度,尤其是在低配置的设备上。
这极大地提升了搜索引擎的可检索性,并可能提升页面读取速度,尤其是在低配置的设备上。
模型改变并不会立即导致视图更新,但是会进入队列并以组的形式进行分配。这比即时视图更新的表现好得多。

最佳的MV* 框架是什么?

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