当前位置:首页>开发>正文

angularUI路由页面切换的动画效果怎么做 AngularJS 有没有缺点

2023-04-20 09:16:47 互联网 未知 开发

 angularUI路由页面切换的动画效果怎么做 AngularJS 有没有缺点

angularUI路由页面切换的动画效果怎么做

页面切换的动画效果大多用Angular的ng-view和CSS3的keyframes和animation实现,当DOM元素变化的时候,AngularJS会在元素上添加特定的class,例如ng-enter,ng-leave...
给这些class定义CSS动画就可以实现页面切换的动画

AngularJS 有没有缺点?

如下是几个算是缺点的地方:

directive
- 过于复杂,上手比较难,看看这些符号和函数就能理解复杂度都多高:
@、=、&
^、?
E、A、C、M
$observe/$watch
compile/prelink/postlink

- 始终要占用一个元素,尤其是当只想输出文本节点,而同时又必须使用 ng-switch 或 ng-repeat 时。

集成
- 第三方库一起使用有点不便——比如和 DOM 相关的库,需要手动包装成 directive;和 Closure Library 集成,很早有计划改进,但还没有什么变化;
- angular 相关的开源组件也还不够丰富 —— 除了 angular-ui 提供了一些,另外 angular-component-spec 可能对这点会有帮助;

$resource 功能稍弱
缺少很多必要的 HTTP 方法,需要自定义;缺少全局配置;内部 $http 的 PATCH 方法对低版 IE 不兼容;

相关工具
yeoman/generator-angular 还不够完善,还有一些 bug:
- usemin 还不支持多个目录查找、不能处理条件注释的情况;
- CoffeeScript 和 JavaScript 混用时不太搭,需要一些 hack;
- livereload 在文件扩展名不是 .html 时也稍微有点问题,需要 hack;

debug 麻烦
AngularJS 给出的调用链又深、又难理解。

另外还有两个可以注意的旧版本问题,最近新版本已经解决(还没发布到 bower):
- $resource 对 promise 的支持;
- directive 对动画的支持;

AngularJS 结合jquery,求助

如果是团队开发实力较强可利用angular的思想以及目前提供的功能重写一些常用的功能和函数库组件之类的,这样的话就可以不需要引入jQuery。如果是个人开发想在短期内实现一些好的效果,我觉得jQuery很多东西还是值得借鉴的,尤其是动画功能。另外angular的思想是面向数据编程,通过数据双向绑定去控制DOM,但是也存在一些情况需要修改DOM的,例如点击某个按钮控制页面其他已有部分的行为,这可以通过指令完成,在指令中选择需要控制的dom节点然后操作它。具体来讲,angular思想和jquery差别较大,需要权衡利弊,尽量去用原生js加angular已有功能实现,一些复杂功能,考虑用angular封装成指令,在指令中利用jQuery提供的某些函数功能也可以。

最新文章