搜尋

layui怎麼使用

Jul 29, 2019 am 10:39 AM
layui

layui怎麼使用

如果你想了解更多關於layui的知識,可以點選:#layui教學

layui怎麼使用

先看下Layui的介紹:

  layui 是一款採用自身模組規範編寫的情懷級前端UI框架,遵循原生HTML/CSS/JS的書寫與組織形式,門檻極低,拿來即用。其外在極簡,卻又不失飽滿的內在,體積輕盈,組件豐盈,從核心代碼到API的每一處細節都經過精心雕琢,非常適合界面的快速開發。 layui 首個版本發佈於2016年金秋,她有別於那些基於MVVM底層的UI框架,卻並非逆道而行,而是信奉返璞歸真之道。確切地說,她更多是為服務端程式設計師量身定做,你無需涉足各種前端工具的複雜配置,只需面對瀏覽器本身,讓一切你所需要的元素與交互,從這裡信手拈來。 layui 相容於人類正在使用的全部瀏覽器(IE6/7除外),可作為PC端後台系統與前台介面的速成開發方案。

取得Layui

  可以 官網首頁 下載到 layui 的最新版,它經過了自動化構建,更適合用於生產環境。目錄結構如下:

 ├─css //css目录
  │  │─modules //模块css目录(一般如果模块相对较大,我们会单独提取,比如下面三个:)
  │  │  ├─laydate
  │  │  ├─layer
  │  │  └─layim
  │  └─layui.css //核心样式文件
  ├─font  //字体图标目录
  ├─images //图片资源目录(目前只有layim和编辑器用到的GIF表情)
  │─lay //模块核心目录
  │  └─modules //各模块组件
  │─layui.js //基础核心库
  └─layui.all.js //包含layui.js和所有模块的合并文件

快速上手

#取得layui 後,將其完整地部署到你的專案目錄(或靜態資源伺服器),你只需要引入下述兩個文件:

./layui/css/layui.css
./layui/layui.js //提示:如果是采用非模块化方式(最下面有讲解),此处可换成:./layui/layui.all.js

  你只需要載入這兩個文件,不用去管其他任何文件。因為他們(例如各模組)都是在最終使用的時候才會自動載入。這是一個基本的入門頁面;

模組化方式

#  我們推薦你遵循layui 的模組規範建立一個入口文件,並透過layui.use() 方式來載入該入口文件,如下所示:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <title>开始使用layui</title>
  <link rel="stylesheet" href="../layui/css/layui.css">
</head>
<body>
 
<!-- 你的HTML代码 -->
 
<script src="../layui/layui.js"></script>
<script>
//一般直接写在一个js文件中
layui.use([&#39;layer&#39;, &#39;form&#39;], function(){
  var layer = layui.layer
  ,form = layui.form;
  
  layer.msg(&#39;Hello World&#39;);
});
</script> 
</body>
</html>

#非模組化方式(即所有模組一次載入)

  如果你不喜歡layui 的模組化組織方式,你完全可以毅然採用「一次性加載」的方式,我們將layui.js 及所有模組單獨打包合併成了一個完整的js文件,用的時候直接引入這一個文件即可。當你採用這樣的方式時,你無需再透過layui.use() 方法載入模組,直接使用即可,如:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <title>非模块化方式使用layui</title>
  <link rel="stylesheet" href="../layui/css/layui.css">
</head>
<body>
 
<!-- 你的HTML代码 -->
 
<script src="../layui/layui.all.js"></script>
<script>
//由于模块都一次性加载,因此不用执行 layui.use() 来加载对应模块,直接使用即可:
;!function(){
  var layer = layui.layer
  ,form = layui.form;
  
  layer.msg(&#39;Hello World&#39;);
}();
</script> 
</body>
</html>

模組化與非模組化

  我還是比較喜歡模組化這個概念,需要的時候就加載,因為假如是非模組化的話,一開始就是加載全部js文件,但實際上有些頁面用到模組可能很少,並不需要載入這麼大的js文件,所以還是推薦使用模組化的方式。非模組化雖然方便,還是對使用者其實不太友善的。

模組規範

  layui 的模組是基於layui.js 內部實作的非同步模組載入方式,它並不遵循於AMD(沒有為什麼,畢竟任性呀!),而是自己定義了一套更輕量的模組規格。而這種方式在經過了大量的實踐後,成為 layui 最核心的模組載入引擎。

預先載入

  開門見山,還是直接說使用比較妥當。 Layui的模組載入採用核心的 layui.use(mods, callback)方法,當你的JS 需要用到Layui模組的時候,我們更推薦你採用預先加載,因為這樣可以避免到處寫layui.use的麻煩。你應該在最外層如此定義:

/*
  Demo1.js
  使用Layui的form和upload模块
*/
layui.use([&#39;form&#39;, &#39;upload&#39;], function(){  //如果只加载一个模块,可以不填数组。如:layui.use(&#39;form&#39;)
  var form = layui.form //获取form模块
  ,upload = layui.upload; //获取upload模块
  
  //监听提交按钮
  form.on(&#39;submit(test)&#39;, function(data){
    console.log(data);
  });
  
  //实例化一个上传控件
  upload({
    url: &#39;上传接口url&#39;
    ,success: function(data){
      console.log(data);
    }
  })
});

按需加載(不推薦)

  如果你有強迫症,你對網站的效能有極致的要求,你並不想預先載入所需的模組,而是在觸發一個動作的時候,才去載入模組,那麼,這是允許的。你不用在你的JS最外層去包裹一個大大的layui.use,你只需要:

/*
  Demo2.js
  按需加载一个Layui模块
*/
 
//……
//你的各种JS代码什么的
//……
 
//下面是在一个事件回调里去加载一个Layui模块
button.addEventListener(&#39;click&#39;, function(){
  layui.use(&#39;laytpl&#39;, function(laytpl){ //温馨提示:多次调用use并不会重复加载laytpl.js,Layui内部有做模块cache处理。
    var html = laytpl(&#39;&#39;).render({});
    console.log(html);
  });
});

  注意:如果你的JS中需要大量用到模組,我們並不建議你採用這種載入方式,因為這代表你要寫很多layui.use(),程式碼可維護性不高。
  建議還是採用:預先載入。即在一個JS檔中,寫一個use即可。

模組命名空間

#

  Layui的全部模块绑定在 layui对象下,内部由layui.define()方法来完成。每一个模块都会一个特有的名字,并且无法被占用。所以你无需担心模块的空间被污染,除非是你 delete layui.mod; 调用一个模块也必须借助layui对象的赋值。如:

layui.use([&#39;layer&#39;, &#39;laypage&#39;, &#39;laydate&#39;], function(){
  var layer = layui.layer //获得layer模块
  ,laypage = layui.laypage //获得laypage模块
  ,laydate = layui.laydate; //获得laydate模块
  
  //使用模块
});

  一个模块一旦加载后,就会注册在layui对象下,所以你无法直接用模块名来获得,而同样借助layui对象。譬如有时你可能会直接在元素的事件属性上去调用一个模块,如:

<input onclick="layui.laydate()">

扩展一个Layui模块

  layui 官方提供的模块有时可能还无法满足你,或者你试图按照layer的模块规范来扩展一个模块。那么你有必要认识layui.define()方法,相信你在文档左侧的“底层方法”中已有所阅读。下面就就让我们一起扩展一个Layui模块吧:

  第一步:确认模块名,假设为:test,然后新建一个test.js 文件放入项目任意目录下(注意:不用放入layui目录)

  第二步:编写test.js 如下:

/**
  扩展一个test模块
**/      
layui.define(function(exports){ //提示:模块也可以依赖其它模块,如:layui.define(&#39;layer&#39;, callback);
  var obj = {
    hello: function(str){
      alert(&#39;Hello &#39;+ (str||&#39;test&#39;));
    }
  };
  //输出test接口
  exports(&#39;test&#39;, obj);
});

  第三步:设定扩展模块所在的目录,然后就可以在别的JS文件中使用了

//config的设置是全局的
layui.config({
  base: &#39;/res/js/&#39; //假设这是test.js所在的目录
}).extend({ //设定模块别名
  test: &#39;test&#39; //如果test.js是在根目录,也可以不用设定别名
  ,test1: &#39;admin/test1&#39; //相对于上述base目录的子目录
});
 
//使用test
layui.use(&#39;test&#39;, function(){
  var test = layui.test;
  
  test.hello(&#39;World!&#39;); //弹出Hello World!
});
//使用test1
layui.use(&#39;test1&#39;, function(){
  var test = layui.test1;
  
  //……
});

大体上来说,Layui的模块定义很类似Require.js和Sea.js,但跟他们又有着明显的不同,譬如在接口输出等地方。

以上是layui怎麼使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
如何使用Layui的流塊模塊進行無限滾動?如何使用Layui的流塊模塊進行無限滾動?Mar 18, 2025 pm 01:01 PM

文章討論了使用Layui的流量模塊進行無限滾動,涵蓋設置,最佳實踐,性能優化和自定義,以增強用戶體驗。

如何使用Layui的元素模塊來創建選項卡,手風琴和進度條?如何使用Layui的元素模塊來創建選項卡,手風琴和進度條?Mar 18, 2025 pm 01:00 PM

本文詳細介紹瞭如何使用Layui的元素模塊來創建和自定義UI元素,例如選項卡,手風琴和進度條,突出顯示HTML結構,初始化和常見的陷阱,以避免。

如何自定義Layui旋轉木製模塊的外觀和行為?如何自定義Layui旋轉木製模塊的外觀和行為?Mar 18, 2025 pm 12:59 PM

本文討論了自定義Layui的Carousel模塊,重點介紹了外觀和行為的CSS和JavaScript修改,包括過渡效果,自動播放設置以及添加自定義導航控件。

如何使用Layui的旋轉木載模塊來創建圖像滑塊?如何使用Layui的旋轉木載模塊來創建圖像滑塊?Mar 18, 2025 pm 12:58 PM

該文章指導使用Layui的Carousel模塊用於圖像滑塊,詳細介紹設置的步驟,自定義選項,實現自動播放和導航以及性能優化策略。

如何將Layui的上傳模塊配置為限製文件類型和尺寸?如何將Layui的上傳模塊配置為限製文件類型和尺寸?Mar 18, 2025 pm 12:57 PM

本文討論了使用Accept,Exts和Size屬性來限制Layui的上傳模塊,以限製文件類型和尺寸,並自定義錯誤消息以違反。

如何使用Layui的圖層模塊來創建模態窗口和對話框?如何使用Layui的圖層模塊來創建模態窗口和對話框?Mar 18, 2025 pm 12:46 PM

本文介紹瞭如何使用Layui的圖層模塊創建模態窗口和對話框,詳細設置,類型,自定義和常見的陷阱要避免。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)