jQueryMobile与AngularJS的区别

(1)jQuery是一个JS函数库,简化DOM操作。

(2)jQueryUI是一个HTML UI组件库,适用于PC应用。

(3)TwitterBootstrap是一个CSS框架,提供了基础样式+HTMLUI组件库,简化响应式网页的开发。

(4)GoogleAngularJS是一个JS框架,简化了数据在页面的操作。

(5)jQueryMobile是一个HTML UI组件库,适用于移动应用。

jQuery+jQueryUI => 基于DOM操作的PC应用

jQuery+Bootstrap => 基于DOM操作的响应式应用

jQuery+Angular => X

jQuery+jQM => 基于DOM操作的移动应用

jQueryUI+Bootstrap => X

jQueryUI+Angular => 基于数据操作的PC应用

jQueryUI+jQM => X

Bootstrap+Angular => 基于数据操作的响应式应用

Bootstrap+jQM => X

Angular+jQM => 基于数据操作的移动应用

2.复习:AngularJS中的MVC模型

(1)每个Controller实例都需要使用ngController指令来创建,创建它的元素就是这个控制器对象的作用范围——对应一个$scope

(2)若想在所有的控制器中共享数据,可以声明为$rootScope范围内的Model数据

(3)若只想在有限的几个控制器中共享数据,可以将这几个控制器声明在同一个父控制器内部

提取父控制器”的意义:在父控制器中声明多个子控制器中共享的、重复的Model数据和Model函数。

3.补充:触屏设备中的事件

jQueryMobile扩展了标准的事件:

orientationchange: 浏览设备的方向改变

pagebeforeload: jQM使用AJAX异步加载一个Page之前

pageload: jQM使用AJAX异步加载一个Page

pagebeforecreate: jQM Page创建之前——挂到DOM树之前

pagecreate:jQM Page被创建——挂到DOM树

pageinit:jQM Page开始初始化——挂到DOM树后开始初始化

pagechange: jQM 当前Page发生改变,且切换动画完成之后

swipe:手指在屏幕上滑动

swipeleft:手指在屏幕向左滑动

swiperight: 手指在屏幕向右滑动

tap: 手指在屏幕上轻击一下

taphold:手指在屏幕上敲击并保持一小段时间

提示:上述事件监听函数的绑定不能直接写在HTML中,只能使用jQuery提供的事件绑定函数来实现:

$(...).on(‘swipeleft‘, fn);


面试题:jQM中提供的几个page相关事件触发顺序:

pagebeforeload -> pageload -> pagebeforecreate -> pagecreate ->pageinit -> pagechange

AngularJS基于jQM扩展了标准的事件:

注意:自定义的模块要声明依赖ngTouch模块,就可以使用触屏相关指令:

(1)ngClick

(2)ngSwipeLeft

(3)ngSwipeRight

4.整合jQM和AngularJS

 整合目标:使用jQM简化界面UI的编写(处理界面) + AngularJS实现数据的双向绑定(处理数据)。

(1)选择页面切换方案:

若ngRoute做路由页面切换,会产生很多问题;

$routeProvider.

when(‘/main‘ ,{

templateUrl: ‘tpl/main.html‘,

controller: ‘mainCtrl‘

})

推荐使用jQM中的页面切换及过场动画:

<a href="x.html" data-transition="动画">

$.mobile.changePage(‘x.html‘, {transition:‘动画‘});

(2)每个Page都对应一个专有的Controller对象

<div data-role="page" ng-controller="xxCtrl">

(3)使用jQM的页面跳转(超链接/JS),加载指定的Page(声明了ngController),默认是不会被Angular实例化出Controller对象——因为Angular自己认为之前已经检索过整个DOM树,已经处理完所有的ngController指令,后添加的Page所声明的ngController不会为Angular所理睬!——必须设法通知到Angular当前DOM树了加载了新的声明ngController指令的元素!—— 让AngularJS重新编译加载的DOM元素。

具体实现过程:

1)使用jQM提供的页面事件监听机制,监听pageinit事件(说明新的Page已经挂载到DOM树,开始初始化处理)

$(‘body‘).on(‘pageinit‘, function (event) {

//console.log(‘新的Page被挂载到DOM树啦...‘);

//console.log(event);

//event.target就是刚被挂载进来的DOM片段

//启用Angular的编译机制,编译一遍这个DOM片段

var newPageScope = $(event.target).scope(); //获取新的代码片段对应的作用域对象

$(event.target).injector().   /*获取Angular注入器*/

invoke(function ($compile) {

$compile($(event.target))(newPageScope); //重新编译DOM片段,并链接入其所需要的模型数据

newPageScope.$digest();  //启动$digest队列的轮询

});

})


AngularJS的启动过程分析——了解

(1)启动之前——页面引入angular.js,此文件提供了一些angular.xx()函数

(2)启动框架——寻找静态DOM树上的ngApp指令,开始引导Angular框架的启动

(3)创建注入器($injector)——负责创建并注入所有组件所依赖的那些对象

$(document).data(‘$injector‘,   angular.injector([...])  )

(4)创建$rootScope对象

(5)编译($compile)DOM子树——根据指令转换DOM节点、分配事件监听函数、进行数据绑定的监听

时间: 2024-12-19 16:02:57

jQueryMobile与AngularJS的区别的相关文章

浅谈angular2与angularJS的区别

简介 大家好,今天给大家介绍一下angular,相信做过前端的小伙伴们都知道angular的大名,angularJS自2012年发布起就受到了大家的广泛关注.他首次提出了双向绑定概念让所有人都耳目一新,2016年angular2正式被发布,那么angular2到底有什么值得期待的地方呢,接下来讲一下angular2吸引人的地方. 1.1.1  angularJS的困境以及angular2的新特性 首先呢我们讨论一下angularJS的一些不足之处: 1.饱受诟病的性能问题 通过检查进行数据更新,

ionic和angularjs的区别?

a.ionic是一个用来开发混合手机应用的,开源的,免费的代码库.可以优化HTML.css和js的性能,构建高效的应用程序,而且还可以用于构建sass和angularJS的优化 b.AngularJS通过新的属性和表达式扩展了HTML.AngularJS可以构建一个单一页面应用程序(SPAs:Single Page Applications) c.lonic是一个混合APP开发工具,它以AngularJS为中间脚本工具(称为库,似乎又不恰当)所以,你如果要使用lonic开发APP,就必须了解An

关于angularjS与jQuery框架的那些事

这篇文章主要介绍了jQuery和angularJS的区别浅析,本文着重讲解一个熟悉jQuery的程序员如何应对angularJS中的一些编程思想的转变吗,需要的朋友可以参考下 最近一直研究angularJs最大的感受就是它和之前的jQuery以及jQuery各种库的设计理念完全不一样.如果不能认识到这一点,而对于之前做jQuery开发的程序员,去直接学习angularJs的话,很可能学了很久还不知道这个东西到底是什么,拿来做什么的,怎么和UI进行结合等问题,我也是到处找资料看了看,在此把自己学习

关于Vue.js和Vue.js的优缺点以及和与其他前端框架的区别

首先,我们先了解什么是MVX框架模式? MVX框架模式:MVC+MVP+MVVM 1.MVC:Model(模型)+View(视图)+controller(控制器),主要是基于分层的目的,让彼此的职责分开. View通过Controller来和Model联系,Controller是View和Model的协调者,View和Model不直接联系,基本联系都是单向的. 用户User通过控制器Controller来操作模板Model从而达到视图View的变化. 2.MVP:是从MVC模式演变而来的,都是通

前端框架与前端类库的理解

前端框架的理解误区 网站的价值在于它能为用户提供什么价值,在于网站能做什么,而不在于它是怎么做的,所以在网站还很小的时候就去追求网站的架构框架是舍本逐末,得不偿失的.前端框架同理,如果是一个简单的页面型产品,应用只是依赖服务器来生成Web页面和视图,并且只需要使用一些简单的Javascript或者JQuery来使应用更加具有互动性,那么一个JQuery前端类库就可以了,真的没必要用上一些高大上的框架. 当然,框架的确是很有用的,重点是我们要知道什么时候该用什么框架.大公司大项目的经验和成功模式固

遇见Vue.js

总之岁月漫长,然而值得等待.... MVC.MVP.MVVM简述 mvc模式:model(模型).view(视图).controller(控制器) => view一般通过controller和model进行联系,controller是model和view的协调者,view和model不直接联系.基本联系都是单向的. mvc模式:model(模型).view(视图).presenter(逻辑层) => presenter完全把view和model进行了分离,主要逻辑在presenter离实现,p

Web前端框架与类库的思考

说起前端框架,我也是醉了.现在去面试或者和同行聊天,动不动就这个框架碉堡了,那个框架好犀利. 当然不是贬低框架,只是有一种杀鸡焉用牛刀的感觉.网站技术是为业务而存在的,除此毫无意义,框架也是一样.在技术选型和架构设计当中,脱离网站业务发展的实际,一味的追求时髦新技术,可能会适得其反,将网站发展引入崎岖小道.就好像一个日均pv只有几百的小型电商网站,却要大喊“某宝就是这么搞的”,然后搭建应用服务器集群,使用分布式文件系统和分布式数据库系统...等巴拉巴拉的一堆用来处理高并发,海量数据访问的手段.我

vue我的总结+转原理

vue:1 mvvm模型,model,view,viewmodel,自底层向上,逐渐增加的模式2 .vue文件 包含html css js 有最近设计原则,将自己需要的放到最近,2 组件化 避免了耦合2 数据双向绑定,数据变化视图变化,视图变化数据变化,观察者的模式,Object.defineProperty()3 丰富的指令 如: v-bind缩写: v-on缩写@ v-model v-if v-else v-else-if v-show v-for v-once v-html v-text4

vue和react总结

一.总结一下Vue和React的区别 相同点:   1.都支持服务器端渲染     2.都有Virtual DOM,组件化开发,通过props参数进行父子组件数据的传递,都实现webComponent规范     3.数据驱动视图     4.都有支持native的方案,React的React native,Vue的weex     5.都有管理状态,React有redux,Vue有自己的Vuex(自适应vue,量身定做) 不同点:   1.React严格上只针对MVC的view层,Vue则是M