与
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
业务逻辑模版
今年
开发者大会中
提到的
Polymer(Welcome
-
Polymer)
这货让人感觉像是
Angular
Directives
的进化。
而
Directives
做的事,就是把一堆
DOM
封装为一条或者一组
自定义的
HTML标签,作为可复用的模版,以供组装业务调用。
Demos
可参看:Angular
directives
for
Twitter's
Bootstrap
当然,为了方便修改,很多时候在做
directive
的时候需要将
template
用
templateUrl
代替,
不用担心文件的碎片化,不利于前端加载
Grunt
自动化
一节
会提到如何合并这些碎片化的
模版。
Directives
是作为可复用的模版,
而业务逻辑则是一般是一个业务对应一个
html
及其的
controller.
你这问题有太笼统了吧?那个js文件不是xxx.js啊?
你自己写一个js文件,保存后, 文件名称也是xxxx.js啊?
但别人又怎么知道你写的什么、作什么用呢?
说到框架的话, js现在比较流行的是jQuery, 怎么用的话, 你百度一下“jQuery”教程!