Javascript MV framework 对比

Javascript 最近的framework笔记多,大致可分以下3类。

单向绑定
简单直接。ajax从service拿数据传递给viewtemplate进行绑定。当然这个过程也可以在服务器端来做,.net的 asp.net mvc 和python的flask框架都可以。
优势: 开发速度提高,单向数据流的页面可考虑使用。
劣势: view与model一对多容易乱,可一对一的话降低了可重用性。

双向绑定
和单向绑定不同之处是,model除了从service拿数据传递给view,view还要负责通知model UI的更新。
优势: 开发速度显著提高。
劣势: 大量使用,容易把代码写乱,可维护性会降低,每个双向绑定就是个观察者模式,有潜在性能问题。

组件思路
主要指的是ReactJS,目的是创建可重用的UI组件,这种做法的任务是维持组件的高内聚性。
优势: 通过提高局部的内聚性来降低软件整体的耦合。可维护性强。
劣势: 一开始开发速度上不如绑定的方式快。页面组件过多会有潜在性能问题。

结论:
凡是考虑双向绑定的场景可考虑使用组件(reactjs)代替。简单页面单向绑定(handlebarjs,knockoutjs),也可以定义一些可重用的UI组件。
UI总体上技术设计是搞定单向绑定+组件。至于用不用jquery,很多因素(技术总架构选择,团队背景等等)而定。总之只要能够维持组件的高内聚,用也无妨。

http://www.woaipu.com/shops/zuzhuan/61406
http://www.znds.com/tv-967956-1-1.html
http://www.znds.com/tv-967958-1-1.html

时间: 2024-11-10 08:19:17

Javascript MV framework 对比的相关文章

JavaScript数组方法对比(深度学习数组)

JavaScript数组方法对比 众所周知,JavaScript提供了许多对数组进行改变的方法,但是有些会对原数组进行影响,有些不会.下边就列举出来. 一.新增 影响原数组 array.push()  //向数组的末尾添加一个或更多元素,并返回新的长度. var array =[1,2,3,4,5]; array.push(6); // [1,2,3,4,5,6]; array.unshift() //向数组的开头添加一个或更多元素,并返回新的长度. var array =[1,2,3,4,5]

LINQ to SQL和Entity Framework对比

LINQ to SQL和Entity Framework都是一种包含LINQ功能的对象关系映射技术.他们之间的本质区别在于EF对数据库架构和我们查询的类型实行了更好的解耦.使用EF,我们查询的对象不再是完全对应数据库架构的C#类,而是更高层的抽象:Entity Data Model.这为我们提供了额外的灵活性,但是在性能和简单性上面也会有所损失. LINQ to SQL由C#团队开发并在.NET Framework 3.5中发布,而Entity Framework由ADO.NET团队开发并作为.

Unity3D中JavaScript与C#对比

第一个也是最容易区分的一点就是声明变量和方法.JavaScript的脚本: 1.  private var cubeTransform; 在C#中,同样的代码则会是: 1.  private Transform cubeTransform; 这对方法同样适用,在C#中,一个方法什么值也没有返回,那么他的返回值为 void 类型,但是在JavaScript中则可以省略. 类的继承也是不同的.在JavaScript和C#中,方法是隐型并且不可重载,除非方法声明中添加虚拟关键字.不同的是C#只重载那些

LINQ to SQL和Entity Framework对比与关联

LINQ to SQL和Entity Framework都是一种包含LINQ功能的对象关系映射技术.他们之间的本质区别在于EF对数据库架构和我们查询的类型实行了更好的解耦.使用EF,我们查询的对象不再是完全对应数据库架构的C#类,而是更高层的抽象:Entity Data Model.这为我们提供了额外的灵活性,但是在性能和简单性上面也会有所损失. LINQ to SQL由C#团队开发并在.NET Framework 3.5中发布,而Entity Framework由ADO.NET团队开发并作为.

Javascript 中 == 与=== 对比

首先,== equality 等同,=== identity 恒等. ==, 两边值类型不同的时候,要先进行类型转换,再比较. ===,不做类型转换,类型不同的一定不等. 下面分别说明: 先说 ===,这个比较简单.下面的规则用来判断两个值是否===相等: 1.如果类型不同,就[不相等] 2.如果两个都是数值,并且是同一个值,那么[相等]:(!例外)的是,如果其中至少一个是NaN,那么[不相等].(判断一个值是否是NaN,只能用isNaN()来判断) 3.如果两个都是字符串,每个位置的字符都一样

三大JavaScript框架对比——AngularJS、BackboneJS和EmberJS

<三大JavaScript框架对比--AngularJS.BackboneJS和EmberJS> 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 如果有心搜索的话,你能找出上百种JavaScript框架.当我们要开发一个现代化的.敏捷酷炫的网站时,JavaScript是必备的基础技术.那么问题来了,如何在这么多JavaScript框架中选取最能满足我们需求的框架?这是一个难题.而且还有很多挑战,比如要让网站在不同的客户端浏览器上表现出一致的行为和外

【JavsScript】JavaScript MVC 框架技术选型

你很喜欢Gmail和Trello之类的单页面应用,但是不太确定该从何开始.也许你的JavaScript代码是如此的杂乱无章,以致于你很想在下一个项目上尝试下JavaScript MVC库和框架,却苦于没有头绪?我正在撰写一本单页面应用的书,所以我阅读了大量网上的相关资料.在这里我尝试提供一些看法,希望可以帮助你下决定. 简介 这里讨论的是时下最热的框架,AngularJS.Backbone.Ember和Knockout.同时提到了Batman.CANjs.Meteor和Spine,但是没有详细展

Learning JavaScript Design Patterns -- A book by Addy Osmani

Learning JavaScript Design Patterns A book by Addy Osmani Volume 1.6.2 Tweet Copyright © Addy Osmani 2015. Learning JavaScript Design Patterns is released under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 unported license. It

[译] 第三十天:Play Framework - Java开发者梦寐以求的框架 - 百花宫

前言 30天挑战的最后一天,我决定学习 Play Framework .我本来想写Sacla,但是研究几个小时后,我发现没法在一天内公正评价Scala,下个月花些时间来了解并分享经验.本文我们先来看看Play框架基础,再开发个程序. 什么是Play框架? Play 是一个开源的现代web框架,用Java和Scala写可扩展的web程序.它能自动加载更新使得极大提高生产率.Play设计了无状态,非阻塞的架构,这使得用Play框架开发水平扩展web程序很容易. 我为什么关注Play? 我学习Play