上一篇文章整理了这个开发模式的后端与数据库迁移方面的东西,这篇文章接着上一篇文章对前端的JS框架进行详细的介绍,由于我更加偏重于后端,因此对于前端的了解不够深入,文章仅做参考,具体的使用请自行查询文档,若文章存在问题,忘指正,以便进行修改。
1、Jquery.js框架
jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。
jQuery框架的出现大大减少了使用原生的js进行开发的速度问题,极大的简便了开发者。其中主要是简便了dom元素的查找和操作。
选择器 开头符号:$()
- 元素选择器 :$(‘p’)
- id选择器:$(‘#lab’)
- 类选择器:$(‘.lab’)
事件处理
on方法,能够绑定事
1
2
3
4$().on("",function(){
// ""中填写需要的时间
// 该处填写需要执行的事件
});click 点击事件
1
2
3$().click(function(){
// 该处添加点击事件,其他的jquery方法可以类似的写
});
AJAX方法
ajax方法(包括post方法和get方法,可以选择)
1
2
3
4
5
6
7$.ajax({
type: 'POST', // 选择方法
url: url, // 上传URL地址
data: data, // 提交数据
success: success, // 请求成功后回调的函数
dataType: dataType // 预期服务器返回数据类型
});post方法
1
2
3
4
5
6$.post(
url,
data,
success(data, textStatus, jqXHR),
dataType
);get方法
1
2
3
4
5
6$.get(
url,
data,
success(response,status,xhr),
dataType
);
2、Require.js框架
require.js的诞生,就是为了解决这两个问题:
(1)实现js文件的异步加载,避免网页失去响应;
(2)管理模块之间的依赖性,便于代码的编写和维护。
现在,越来越多的js框架,并且js框架之间相互依赖,当依赖关系很复杂的时候,代码的编写和维护会变得更加困难。Require框架就是为解决着这些问题。
js加载
添加js文件在js目录,直接加载
1
<script src="js/require.js"></script>
异步加载
1
<script src="js/require.js" defer async="true" ></script>
加载页面js文件
1
<script src="js/require.js" data-main="js/main"></script>
当很多js文件,且依赖文件相同,可以简化,导入一次配置就可以了
1
2
3<script src="js/require.js"></script>
<script src="js/config.js"></script>
<script src="js/main.js"></script>
主模块
使用AMD规范定义的的require()函数。
1
2
3
4// main.js
require(['moduleA', 'moduleB', 'moduleC'], function (moduleA, moduleB, moduleC){
// some code here
});例如:
1
2
3require(['jquery', 'underscore', 'backbone'], function ($, _, Backbone){
// some code here
});js文件加载会先加载jquery、underscore、backbone,再运行回调函数。
模块加载
针对依赖的问题,我们需要对模块的加载进行自己定义。require.config()就写在主模块(main.js)的头部。参数就是一个对象,这个对象的paths属性指定各个模块的加载路径。
3、Knockout.js
Knockout是一款很优秀的JavaScript库,它可以帮助你仅使用一个清晰整洁的底层数据模型(data model)即可创建一个富文本且具有良好的显示和编辑功能的用户界面。任何时候你的局部UI内容需要自动更新(比如:依赖于用户行为的改变或者外部的数据源发生变化),KO都可以很简单的帮你实现,并且非常易于维护。
我们使用Knockout来做数据的双向绑定,主要使用data-bind在View上进行数据绑定。
建立数据模型
在MVVM的设计模式中,View Model是很重要的一环,通过使用KO建立一个View Model,需要声明一个JS对象。例如:
1
var people = {name: 'xiaoming', age: '12'}
激活对象
data-bind属性并不是HTML固有对象,但使用它是完全正确的(这是完全遵守HTML5,尽管有验证器指出这是一个无法验证的属性,但在HTML4当中使用是不会造成任何问题的)。但浏览器并不知道它是什么意思,所以你需要激活Knockout来使其生效。
1
2
3
4
5// 激活对象
ko.applyBindings(people);
// 设置使用data-bind属性的HTML元素或者容器
ko.applyBindings(people, $('#people'));数据绑定
1
<span data-bind="text:name">