requireJS简单的学习门户网站

总结

requireJS。这翻译成中国"必须js"。说白了就是装js文件与。如何装好了?。这是继AMD标准化的模块化装。除了AMD另一种规范称为CMD规范。跟随CMD兼容模块加载。的淘宝首席架构师”玉伯“写的SeaJS了,并且这货听说还能载入css文件。似乎非常niubility! 可是今天讲的是requireJS,至于二者的优缺点请參考:http://www.zhihu.com/question/20342350,后来发现最火的答案竟然是seaJS的作者写的,看来作者还是非常在乎别人对SeaJS的评价。

ok,回到原题,有人会问为什么要使用基于模块的形式载入js文件呢?我的答案是不一定要用这样的形式,使用这样的形式是因人而异,因项目而异的,假设做大型站点的话,使用模块的形式会比較规范。维护也比較easy,架构也比較清晰。反正多学点东西没坏处。并且如今非常多的js前端框架也開始支持兼容模块化的载入方式了,比方大名鼎鼎的,作为一个PE无人不知的Jquery,还有Node,Dojo,等。

以下来看看jquery-ui的一个button组件的一小段代码,就知道怎么回事了。

<pre name="code" class="html">(function( factory ) {
	if ( typeof define === "function" && define.amd ) {

		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"./core",
			"./widget"
		], factory );
	} else {

		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {
//your plugin code
 //你的插件or模块代码
});

这是一种兼容的方法。假设你使用了AMD载入器(如requireJS)的话。define的类型就是function,然后就会依照AMD的规范来定义此插件(模块),关于怎样按AMD规范来定义插件。请參考:http://requirejs.org/docs/api.html#define。假设你没有使用载入器的话则依照一般的方法定义,这种话就能够依照普通的方法正常使用了。

如今我们应该知道。requireJS仅仅能正确载入依照AMD规范定义的插件,通过仅仅要对普通的插件进行简单的改动就可以。只是如今越来越多的插件開始兼容AMD规范了。

好了,如今来看看怎样使用requireJS来载入插件吧。

一个小样例

那就用jquery-UI做样例吧,首先建立一个例如以下结构的project文件夹:

├── index.html
├── js
│   ├── app.js
│   ├── jquery-ui
│   │   ├── accordion.js
│   │   ├── autocomplete.js
│   │   ├── button.js
│   │   ├── core.js
│   │   ├── datepicker.js
│   │   ├── dialog.js
│   │   └── ...
│   ├── jquery.js
│   └── require.js

我们能够看到,全部js文件都放在了js文件夹中,jquery.js和require.js直接位于js文件夹中。而且全部的jquery UI的文件都位于jquery-ui文件夹中。app.js则包括我们的主要代码。

只是你也能够使用其它的文件夹结构,只是可能须要进行一些配置改动。这样requireJS才知道怎样找到这些依赖的文件,能够參考change
some configuration

如今这些文件都准备好了,怎样使用它们呢?请看index.html中的代码:

<!doctype html>
<html lang="en">
<head>
    ...
</head>
<body>

<script src="js/require.js" data-main="js/app"></script>

</body>
</html>

我们仅仅须要载入require.js文件就可以,注意这里仅仅能载入这个一个文件。否则会报错的,具体请參考:http://requirejs.org/docs/errors.html#mismatch。这里还须要注意data-main属性,这里是js/app.js。这里的意思是等reuire.js载入完后会自己主动运行app.js中的代码。不信的话,能够在app.js中加一条console.log();測试一下。

/* app.js */
console.log( "loaded" );

以下就可能够app.js使用require()这个函数来载入你想要的js文件了,如:

require([ "jquery-ui/autocomplete" ], function( autocomplete ) {
    ...
});

这样就会异步载入jquery-ui/autocomplete.js和它所依赖的js文件(jquery.js,jquery-ui/core.js,jquery-ui/wedget.js等)。

当这些依赖的文件所有载入完毕后,就会运行后面的回调函数。

以下是使用jquery-UI中的一个样例:

require([ "jquery-ui/autocomplete" ], function( autocomplete ) {
    autocomplete({ source: [ "One", "Two", "Three" ] }, "<input>" )
        .element
        .appendTo( "body" );
});

你也能够吧jquery载入进来,这样就能够像使用jquery那样使用了:

require([ "jquery", "jquery-ui/autocomplete" ], function( $ ) {
    $( "<input>" )
        .autocomplete({ source: [ "One", "Two", "Three" ]})
        .appendTo( "body" );
});

ok,最终把这个样例介绍完了。虽然非常粗糙,可是有个印象即可了。毕竟是入门。假设进一步的研究需要能够reqiureJS官方网站查看很多其他的细节和原则。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-10-11 18:33:45

requireJS简单的学习门户网站的相关文章

requireJS简单入门学习

概要 requireJS,翻译成中文即"需要js",说白了就是加载js文件用的.怎么加载呢?,即遵循AMD规范的模块化加载.除了AMD规范还有一个叫做CMD规范,遵循CMD规范的模块加载器,比较有名的应该是国内的淘宝首席架构师"玉伯"写的SeaJS了,而且这货听说还能加载css文件,似乎很niubility! 但是今天讲的是requireJS,至于二者的优缺点请参考:http://www.zhihu.com/question/20342350,后来发现最火的答案居然

MyBatis学习门户网站(一)

需要jar包:mybatis-3.x.x.jar .假设需要和spring综合,此外,我们需要增加相关的包 1:看到项目文件夹 不要在意红色 2:依照步骤: 1:增加jar包 2:创建数据源(configuration.xml)创建数据库(此处省略) <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Con

php查询多个门户网站页面搜索结果简单代码

在门户网站搜索信息的功能. site.php main.php left.php search.php common/function.php ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// site.php <html> <head> <meta http-equiv=&q

SharePoint Online 创建门户网站系列之定制栏目

前 言 SharePoint Online自带的库就带有二级页面和详细页面,也就是Allitems页面和DispForm页面,但是实在不够美观,尤其对于门户网站这一企业门面来说,更是无法接受. 下面,我们就开始学习如何定制SPO的二级页面和详细页面. 一. SharePoint Online定制列表的二级页面 在“新闻中心”的列表页创建一个视图,用来当做二级页面,如下图: 视图类型,选择 基于所有项目创建一个新的视图,如下图: 输入视图名称为“新闻中心”,同时设置为默认视图,如下图: 选择栏,我

遇到的问题—门户网站

今天在做门户网站的时候,遇到了一些问题以及学习到知识,以下就是自己的归纳总结: 一.流程图设计软件:process on 介绍:(1).ProcessOn是一款基于HTML5和JavaScript技术开发而成. 操作简单.方便的同时也是一款专业的垂直在线作图工具 (2).使用ProcessOn不需要下载和安装,更不需要破解和激活, 打开浏览器即可在线操作所有数据实时云端存储, 同时支持多人在线实时协作,从此再也不需要和同事, 领导之间来回传送文件,直接邀请,一起协作完成. (3).Process

SharePoint Online 创建门户网站系列之图片滚动

?? 前 言 创建SharePoint Online栏目我们之前已经介绍过了,具体就是内容编辑器方式.自带WebPart方式和JavaScript读取后台数据前台做展示的三种: 但是,对于复杂的展示来说,这些方式还是会比较难以实现,虽然对于首页的图片轮播来说,通过JavaScript方式已经完全能够胜任,但是,我还是想通过这个栏目,为大家介绍如何使用沙盒解决方案创建WebPart,来完成更加复杂的前台展示. 下面,让我们开始在SharePoint Online的门户网站中创建沙盒解决方案吧 .

requirejs的基本学习

1.首先看几个简单的学习网站. http://www.runoob.com/w3cnote/requirejs-tutorial-1.html 这里边有两个教程一个一,一个二,看完后你有简单的了解.

SharePoint Online 创建门户网站系列之准备篇

前 言 门户是SharePoint自推出以来,就非常适合的一种站点类型,在Server版本中,发布站点的应用非常广泛.这里,我们以一个个简单的例子,然后以一个固定的项目Demo,为大家演示如何一步步在SharePoint Online中创建门户网站. 一. 设计工具SharePoint Designer简介 打开Designer,首先需要点击红框的按钮打开站点,输入站点的地址即可:一般来说,网站地址是打开的首页(如:https://linyus-public.sharepoint.com/Pag

SharePoint Online 创建门户网站系列之创建栏目

前 言 SharePoint Online的栏目,简单描述即显示在首页上的各个模块信息,这里,我们主要介绍我们首页上的栏目,包括简介类型.新闻列表类型.图片类型: 下面,让我们开始在SharePoint Online的门户网站中创建栏目吧 . 一. SharePoint Online 为栏目创建列表 创建新闻中心列表,如下图: 我们创建一个内容(多行文本)字段,用来保存新闻的内容: 创建联系我们列表,如下图: 字段:联系人.电话.手机.邮编.网址,类型均为单行文本: 二. SharePoint