requirejs配置代码示例
requirejs大致用法:通过定义模板define()再通过require()或requirejs()加载模板,
paths是路径,如果路径长可以把它赋一个短名称加入ruquire()中,shim是兼容处理的,查看
index.html里面不需要其他引入js的script标签,除了这个 <script data-main= 'js/main' src='js/require.js"></script> 在main.js中进行文件的配置,并调用入口函数 requirejs.config({ baseUr: ‘’, shim: { ), paths: { } }); 定义模块 define(function(){ }); 处理模块间的依赖 requirejs("modA", "modB", "modC"], function(modA, modB, modC) { var a = modA.funName(); var b = modB.valName(); var c = modC.objName. propName; );
引入方式 :
<script data-main="js/main" src="js/require.js"></script>
data-main="js/main" 直接引入这个配置文件会异步加载
data-main是导入require配置好的模板在里面把引入的主次依赖关系弄好,就可以达到引入一个js文件,
其他文件也能被间接的引入进来,这也是requirejs要达到的目的
路径及兼容配置,路径端可以直接下载模板加载器require()里
require.config({ baseUrl:"js", //文件基础入口 写了这个引入所有文件都已这个作为根目录 shim:{ // 兼容处理 }, paths:{ //配置现成路径 也可以引入网上的CDN // jquery:'jquery/jquery.min' //,可以直接映射到下面的require()模板加载器中,用你命名的文字 //加载cdn上的资源 最后没加载到就加载本地的 ,除了这个依赖前置,还可以在依赖的文件中写入,就是直接在define中写入依赖也就是就近依赖, // jquery : ["http://libs.baidu.com/jquery/2.0.3/jquery", "js/jquery"] } })
模板加载器
// 处理模块间的依赖 //按照顺序加载 //引用时的命名 require(['jquery','util/util1','util/util2','moths/moth1','plugins/nav'],function(util1,util2,moth1){ util1.hide(); //调用util1对象属性 util1内容在下方 util2(); //调用util2对象方法 util2内容在下方 $('body').append('<h1>jquery test</h1>') })
模板define
// 定义模块 define([''],function(){ [''],可写可不写,看你有没有依赖项 })
模板只是加了define(),js该怎么写还是怎么写,他也可以像加载器require一样加载依赖模板
define([jq/js],function(){ $('body').css('backgroundColor','red'); })
这样写说明他们存在依赖,依赖jquery,还有一点[jq/js]路径以设置的baseUrl为主入口
util2模板文件内容
define(function(){ var util2 = function(){ console.log('util2...') } return util2; //return的是方法调用时直接方法名() })
util1模板文件内容
define(function(){ // console.log('util1...') return { //return 的是属性 调用时用形参.对象属性() show:function(){ console.log('show'); }, hide:function(){ console.log('hide'); } } })
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示