PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通

QQ:420220301 微信/手机:150-3210-7690
当前位置:首页 > CMS教程 > Fastadmin

写给自己看的前端问题 - 关于require.js文件分析

管理员 2024-12-14
Fastadmin
3

RequireJs能做什么

  1. 防止js加载阻塞页面渲染
  2. 美化代码,模块加载js文件,让html文件中再无其他js代码

    RequireJs基础方法

  3. 定义模块方法:define('模块名',['依赖模块1','依赖模块2'],callback);

    define('ceshi',['jquery','xxx'], function ($,xxx) {var ceshiModel = {    ceshi1: function () {    },    ceshi2: function () {    },};return ceshiModel;});
    define有三个参数,第一个参数为模块名,可省略,默认为当前文件名。第二个参数为当前模块依赖的第三方js文件。第三个参数是回调函数。
  4. 加载模块方法:require(['加载的模块1','加载的模块2'],callback,fn);

    require(['jquery', 'ceshi'], function ($, ceshi) {//调用上述ceshi模块提供的方法ceshi.ceshi1();ceshi.ceshi2();},function(e){//打印模块加载错误信息console.log(e);});
    require第一个参数是模块依赖,必须是一个数组,即使只有一个依赖,也要用数组形式。第二是回调函数,是用来处理加载完毕后的逻辑。第三个是error回调函数。

    RequireJs的配置

    当require()方法在页面中使用的时候,如果依赖的第三方模块,如jquery不在本地,而是在cdn上,该怎么办呢?这样就不能通过这种方式来加载了。这里需要用的require.config();

    require.config({//paths属性用来js文件的路径paths : {    "jquery" : ['js/jquery']},//shim属性用来配置不支持AMD规范的库和、js文件和依赖shim: {    "bootstrap":{        //模块暴露,让模块支持AMD规范加载        exports:'undefined',        //模块依赖暴露,让模块支持AMD规范加载        deps:['jquery']    }},});
    require.config是用来配置模块加载位置,简单点说就是给模块起一个更短更好记的名字,比如将BootCDN的jquery库地址标记为jquery,这样在require时只需要写["jquery"]就可以加载该js了,paths还有一个重要的功能,就是可以配置多个路径,如果远程cdn库没有加载成功,可以加载本地的库。在使用requirejs时,加载模块时不用写.js后缀的。

    RequireJs的全局配置

    当我们研究深入时,逐渐发现,如果每个页面都去配置require.config(),必然显得十分不雅,毕竟我们的目的是让页面不再有多余的js。官方提供了一个全局配置的属性。

    <script data-main="js/main" src="js/require.js"></script>
    为require.js的script标签申明一个data-main属性,定义一个全局main.js的配置文件。将公共的配置信息填写在main.js文件中,然后将require()方法定义在main.js内,这样每个页面就不需要再配置相关参数和require了。
js内获取当前configname为"_"的参数requirejs.s.contexts._.config

RequireJs使用步骤

  1. 下载并引入[require.js]()到项目中。

    <script data-main="js/main" src="js/require.js"></script>
  2. 申明main.js里面的全局配置

    require.config({paths : {    "jquery" : ["https://cdn.bootcss.com/jquery/1.9.0/jquery.min",'js/jquery']},shim: {}});
  3. main.js页面全局配置后面中加载模块,并写业务函数

    require(['jquery','index'],function($,index){$('p').on('click',function(){    alert('我是猪');});});

希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, Fastadmin, ClassCMS, LeCMS, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。

相关推荐

扫码关注

qrcode

QQ交谈

回顶部