关于AngularJS 框架的使用有哪些经验值得分享

 我来答
Mr朱由榔
2014-11-27 · TA获得超过2.9万个赞
知道大有可为答主
回答量:1.5万
采纳率:92%
帮助的人:7975万
展开全部
AngularJS 与 jQuery 等传统操作 DOM 的思想有所不同,

对于 jQuery 等,一般是先有完整 DOM 然后在这些 DOM 的基础上进行二次调教。
而 AngularJS 等框架则是 根据 数据模型 以及其对应的 DOM 模版,然后通过模版像搭积木那样组合页面。

显然的,前者在 SEO 上有天然优势;而后者,搜索引擎还只能拿到某个模版,而无内容。
暂时没想到有什么特别好的解决方案,或许,对于内容页,可以继续使用传统方式,而只在需要更多交互的地方应用 AngularJS,特别是在移动端应用上。

同理适用于各种 前端的 MVC 框架,后端只要为前端提供数据接口,而不再需要为其拼接 HTML.

## 模块化

AngularJS 也是遵循 AMD 的。(AMD 是啥,参考:使用 AMD、CommonJS 及 ES Harmony 编写模块化的 JavaScript)

虽然它也可以按照传统代码方式来写(其首页介绍的用法 AngularJS — Superheroic JavaScript MVW Framework),但是,既然都提供了这么一种模块的方法,为何不用上呢

angular.module('app', [
'moduleA',
'moduleB',
])
.controller('MainCtrl', [
'$scope',
function ($scope) {

}]);

而且,这种写法还可以方便做代码的合并与压缩,在后面 Grunt 自动化 一节中,就会提到使用 Nodejs/Grunt 来自动的做这些事情。

## 可复用模版 or 业务逻辑模版

今年 Google 开发者大会中 提到的 Polymer(Welcome - Polymer)
这货让人感觉像是 Angular Directives 的进化。

而 Directives 做的事,就是把一堆 DOM 封装为一条或者一组 自定义的 HTML标签,作为可复用的模版,以供组装业务调用。 Demos 可参看:Angular directives for Twitter's Bootstrap

当然,为了方便修改,很多时候在做 directive 的时候需要将 template 用 templateUrl 代替,
不用担心文件的碎片化,不利于前端加载 Grunt 自动化 一节 会提到如何合并这些碎片化的 模版。

Directives 是作为可复用的模版,
而业务逻辑则是一般是一个业务对应一个 html 及其的 controller.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式