當(dāng)前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
yii2-按需加载并管理CSS样式/JS脚本
生活随笔
收集整理的這篇文章主要介紹了
yii2-按需加载并管理CSS样式/JS脚本
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
(注:以下為Yii2.0高級;注意代碼中php標(biāo)簽自己補上)
一、資源包定義
Yii2對于CSS/JS 管理,使用AssetBundle資源包類。
創(chuàng)建如下:
backend/assets/AppAsset.php
二、視圖使用:
1. 視圖(或布局)使用全局CSS/JS
use yii\helpers\Html; use backend\assets\AppAsset; use backend\widgets\Alert; /* @var $this \yii\web\View */ /* @var $content string */ AppAsset::register($this);查看源文件,看清CSS和JS的加載順序
可以看出以此順序為:依賴關(guān)系 -> 自定義全局CSS/JS
如果,某個視圖需要單獨引入一個CSS/JS,并且,在頁面中還要寫些CSS/JS,該如何做?
2. 在頁面中單獨寫樣式
$cssString = ".gray-bg{color:red;}"; $this->registerCss($cssString);3. 在頁面中單獨寫JS(使用數(shù)據(jù)塊)
<div id="mybutton">點我彈出OK</div> <?php $this->beginBlock('test') ?> $(function($) { $('#mybutton').click(function() { alert('OK'); }); }); <?php $this->endBlock() ?> <?php $this->registerJs($this->blocks['test'], \yii\web\View::POS_END); ?>或者:
<?php $this->registerJs('$("document").ready(function(){ $("#login-form").validate({errorElement : "small", errorClass : "error",rules: {"AgNav[nav_cn]": {required: true,},},messages:{"AgNav[nav_cn]" : { required : "此字段不能為空.",},}});});' ); ?>4.視圖中引入CSS/JS文件
然后再說下在視圖中如何引入一個CSS/JS文件(不是定義在全局里的CSS或JS)
分別有兩種方法:
方法1
在資源包管理器里面定義一個方法,然后在視圖中注冊即可(推薦使用這種)
如上面代碼己定義:
//定義按需加載JS方法,注意加載順序在最后 public static function addScript($view, $jsfile) { $view->registerJsFile($jsfile, [AppAsset::className(), 'depends' => 'backend\assets\AppAsset']); }視圖中使用如下
AppAsset::register($this); //只在該視圖中使用非全局的jui AppAsset::addScript($this,'@web/js/jquery-ui.custom.min.js'); //AppAsset::addCss($this,'@web/css/font-awesome/css/font-awesome.min.css');查看下源碼,特別的注意下,加載的順序,是我們想要的結(jié)果
此外注意:在上面的addScript方法中,如果沒有 ’depends‘=>’xxx‘ ,此處加載的順序?qū)嵉埂?/p>
方法2
不需要在資源包管理器中定義方法,只要在視圖頁面直接引入即可
總結(jié)
以上是生活随笔為你收集整理的yii2-按需加载并管理CSS样式/JS脚本的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaScript 位运算总结拾遗
- 下一篇: .net中如何生成不重复的随机数