最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript的模塊化開發(fā)框架Sea.js上手指南

 更新時(shí)間:2016年05月12日 15:52:30   作者:qiangck  
Sea.js的目的是追求簡單的代碼書寫和組織方式,Sea.js并沒有過多功能而是主要對(duì)前端程序的部署結(jié)構(gòu)作出約束,下面我們就來看一下JavaScript的模塊化開發(fā)框架Sea.js上手指南:

Sea.js所有源碼都存放在 GitHub 上:https://github.com/seajs/examples,目錄結(jié)構(gòu)為:

examples/
 |-- sea-modules   存放 seajs、jquery 等文件,這也是模塊的部署目錄
 |-- static      存放各個(gè)項(xiàng)目的 js、css 文件
 |   |-- hello
 |   |-- lucky
 |   `-- todo
 `-- app       存放 html 等文件
    |-- hello.html
    |-- lucky.html
    `-- todo.html

引入seajs主文件

<script src="js/sea.js"></script>
<script type="text/javascript">
  // seajs配置項(xiàng)
  seajs.config({
    //設(shè)置基本的JS路徑(引用外部文件的根目錄)
    base:"./js",
    //設(shè)置別名(方便后面引用使用)
    alias:{
      "jQuery":"jquery.js"
    },
    //路徑配置(跨目錄調(diào)用或者目錄比較深時(shí)使用)
    paths: {
      'jQuery': 'http://libs.baidu.com/jquery/2.0.0/'
    },
    //設(shè)置文件編碼
    charset:"utf-8",
    //預(yù)加載文件
    preload:['jQuery']
  });
  // 引用主入口文件
  seajs.use(['main','jQuery'],function(e,$){
    //回調(diào)函數(shù)
    alert("全部加載完成");
  });
</script>

seajs主入口文件(main)

define(function(require, exports, module) {
  // 主入口文件引入其他文件依賴
  //var testReQ = require('index');
   var testReQ = require.async('index',function(){
      //異步加載回調(diào)
      alert("我是異步加載的index的回調(diào)函數(shù)");
   });
  // 運(yùn)行index釋放的接口方法
  // testReQ.testInit();

  // 運(yùn)行index釋放的接口方法(module)
  testReQ.textFun();
});

seajs依賴文件(index)

define(function(require, exports, module) {
  // 對(duì)外釋放接口
  exports.testInit = function(){
    alert("我是一個(gè)接口");
  };
  // 如果需要釋放大量接口,可以使用module
  var testObj = {
    name:"qiangck",
    sex:"man",
    textFun:function(){
      alert("我是一個(gè)使用module.exports的對(duì)象方法");
    }
  }
  // module.exports接收obj對(duì)象
  module.exports = testObj;
});

文件的加載順序

2016512154937332.png (726×233)

下面我們從 hello.html 入手,來瞧瞧使用 Sea.js 如何組織代碼。

在頁面中加載模塊

在 hello.html 頁尾,通過 script 引入 sea.js 后,有一段配置代碼:

// seajs 的簡單配置
seajs.config({
 base: "../sea-modules/",
 alias: {
  "jquery": "jquery/jquery/1.10.1/jquery.js"
 }
})

// 加載入口模塊
seajs.use("../static/hello/src/main")

sea.js 在下載完成后,會(huì)自動(dòng)加載入口模塊。頁面中的代碼就這么簡單。

模塊代碼

這個(gè)小游戲有兩個(gè)模塊 spinning.js 和 main.js,遵循統(tǒng)一的寫法:

// 所有模塊都通過 define 來定義
define(function(require, exports, module) {

 // 通過 require 引入依賴
 var $ = require('jquery');
 var Spinning = require('./spinning');

 // 通過 exports 對(duì)外提供接口
 exports.doSomething = ...

 // 或者通過 module.exports 提供整個(gè)接口
 module.exports = ...

});

上面就是 Sea.js 推薦的 CMD 模塊書寫格式。如果你有使用過 Node.js,一切都很自然。

相關(guān)文章

  • 微信小程序之前臺(tái)循環(huán)數(shù)據(jù)綁定

    微信小程序之前臺(tái)循環(huán)數(shù)據(jù)綁定

    這篇文章主要介紹了微信小程序之前臺(tái)循環(huán)數(shù)據(jù)綁定的相關(guān)資料,這里提供實(shí)例幫助大家學(xué)習(xí)理解這部分內(nèi)容,需要的朋友可以參考下
    2017-08-08
  • 微信小程序 教程之WXML

    微信小程序 教程之WXML

    這篇文章主要介紹了微信小程序 教程WXML的相關(guān)資料,這里提供了簡單實(shí)例,需要的朋友可以參考下
    2016-10-10
  • js中的函數(shù)嵌套和閉包詳情

    js中的函數(shù)嵌套和閉包詳情

    這篇文章主要介紹了js中的函數(shù)嵌套和閉包,在聊閉包這個(gè)問題之前,先了解一下變量的定義域,在js中,變量定義域有全局作用域和局部作用域之說,文章主要介紹函數(shù)的作用域,需要的朋友可以參考一下
    2021-11-11
  • 前端面試必會(huì)網(wǎng)絡(luò)跨域問題解決方法

    前端面試必會(huì)網(wǎng)絡(luò)跨域問題解決方法

    這篇文章主要為大家介紹了前端面試必會(huì)的網(wǎng)絡(luò)跨域問題解決方法講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • 微前端框架qiankun源碼剖析之上篇

    微前端框架qiankun源碼剖析之上篇

    這篇文章主要為大家介紹了微前端框架qiankun的源碼剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • JS 基本概念詳細(xì)介紹

    JS 基本概念詳細(xì)介紹

    這篇文章主要介紹JS 基本概念,對(duì)于初學(xué)者來說,Javascript 乍一看似乎很容易,因?yàn)樗念愃朴?C 的語法,但不管它的運(yùn)行方式如何,對(duì)語言 (ESNext) 及其框架所做的不斷變化可能會(huì)讓初學(xué)者不知所措。下面我們就來看JS 初學(xué)者怎么入門吧
    2021-10-10
  • 微信小程序  自定義創(chuàng)建詳細(xì)介紹

    微信小程序 自定義創(chuàng)建詳細(xì)介紹

    這篇文章主要介紹了微信小程序 自定義創(chuàng)建詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • Svelte調(diào)試模式j(luò)s級(jí)別差異和細(xì)化后的體積差異詳解

    Svelte調(diào)試模式j(luò)s級(jí)別差異和細(xì)化后的體積差異詳解

    這篇文章主要為大家介紹了Svelte調(diào)試模式j(luò)s級(jí)別差異和細(xì)化后的體積差異詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • arcgis?js完整懸停效果實(shí)現(xiàn)demo

    arcgis?js完整懸停效果實(shí)現(xiàn)demo

    這篇文章主要為大家介紹了arcgis?js完整懸停效果實(shí)現(xiàn)demo詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • 微信小程序-拍照或選擇圖片并上傳文件

    微信小程序-拍照或選擇圖片并上傳文件

    這篇文章主要介紹了微信小程序-拍照或選擇圖片并上傳文件的相關(guān)資料,需要的朋友可以參考下
    2017-01-01

最新評(píng)論

嘉禾县| 邮箱| 晋城| 霸州市| 普宁市| 繁昌县| 栖霞市| 偃师市| 阿克陶县| 乃东县| 泸西县| 青浦区| 贡山| 四川省| 五常市| 景宁| 衡水市| 榆林市| 文昌市| 裕民县| 淳化县| 石棉县| 彩票| 沁源县| 成武县| 湖州市| 汝阳县| 北宁市| 扎赉特旗| 固始县| 紫金县| 肇东市| 天长市| 缙云县| 恩施市| 宝清县| 旬阳县| 青铜峡市| 宾川县| 阿城市| 兴隆县|