[前端]requireJS的知识分享

2024-01-10 11:18

本文主要是介绍[前端]requireJS的知识分享,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天和大家一起聊聊requireJS, requires主要是为了实现js代码的模块化,避免命名冲突,加快js代码的加载速度,为了更好的理解requirejs,进行如下总结:

RequireJS采用不同的方法来加载脚本,他鼓励模块化编程,使用RequireJS编程不但可以模块化编程而且他依旧可以运行的很快。

注:所谓的模块化编程,就是将不同功能的代码进行分文件管理,将具有相关功能的函数封装到一个文件中,用的时候只需要导入该文件即可

RequireJS鼓励使用模块ID,而不是像原来那样使用script标签使用url引入。

注:首先我们先搞清楚几个概念,模块ID:就是文件的代替者,指的是在main.js文件中,我们可以在require.config函数中,对不同的模块文件进行配置,具体如下图所示,而下图的jquery就是针对于'jquery-3.2.0'的模块id,这里可以去掉后缀js,因为requirejs默认都是js文件

require.config({

        	paths:{		jquery:'jquery-3.2.0'
        	}
	})

RequireJS加载代码时候,其相对路径为baseUrl,baseUrl通常被设置为data-main指定文件的目录:

注:BaseUrl也可以通过设置进行手动配置(通过RequireJS 的 config进行配置),若是没在config中进行配置,并且script标签没有指定data-main的话,那么默认目录为引入requireJS的HTML页面目录

requirejs.config({//默认情况下模块所在目录为js/libbaseUrl: 'js/lib',//当模块id前缀为app时,他便由js/app加载模块文件//这里设置的路径是相对与baseUrl的,不要包含.js
    paths: {app: '../app'}
});

具体步骤如下:

1. 导入requirejs包,设置data-main,data-main是requires的初始化执行文件,需要注意一点,data-main是异步加载的,如果加载了其他的js包,可能会出现加载的先后顺序问题

<script data-main="js/main.js" src="js/require.js" type="text/javascript"></script>

2. 主要函数:

requirejs.config 已经介绍过,不做过多解释

requires:

// 开始逻辑.
requirejs(['jquery', 'canvas', 'app/sub'],
function   ($, canvas, sub) {//jQuery, canvas and the app/sub module are all//loaded and can be used here now.
});

define:
define(['jquery'],function ($) {
return {displayWidth:function (a) {console.log(a.offsetHeight)},displayChild:function (o) {console.log(o.childNodes)}}
})
若是模块具有依赖关系,第一个参数应该是一个数组,其项目为依赖名字,第二个参数是匿名函数,匿名函数在依赖项加载结束后会立即加载,函数会返回一个对象用以定义这个模块。
define(function () {//Do setup work herereturn {color: "black",size: "unisize"}
});

这篇关于[前端]requireJS的知识分享的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/590611

相关文章

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

一文详解Java异常处理你都了解哪些知识

《一文详解Java异常处理你都了解哪些知识》:本文主要介绍Java异常处理的相关资料,包括异常的分类、捕获和处理异常的语法、常见的异常类型以及自定义异常的实现,文中通过代码介绍的非常详细,需要的朋... 目录前言一、什么是异常二、异常的分类2.1 受检异常2.2 非受检异常三、异常处理的语法3.1 try-

HTML5中的Microdata与历史记录管理详解

《HTML5中的Microdata与历史记录管理详解》Microdata作为HTML5新增的一个特性,它允许开发者在HTML文档中添加更多的语义信息,以便于搜索引擎和浏览器更好地理解页面内容,本文将探... 目录html5中的Mijscrodata与历史记录管理背景简介html5中的Microdata使用M

html5的响应式布局的方法示例详解

《html5的响应式布局的方法示例详解》:本文主要介绍了HTML5中使用媒体查询和Flexbox进行响应式布局的方法,简要介绍了CSSGrid布局的基础知识和如何实现自动换行的网格布局,详细内容请阅读本文,希望能对你有所帮助... 一 使用媒体查询响应式布局        使用的参数@media这是常用的

HTML5表格语法格式详解

《HTML5表格语法格式详解》在HTML语法中,表格主要通过table、tr和td3个标签构成,本文通过实例代码讲解HTML5表格语法格式,感兴趣的朋友一起看看吧... 目录一、表格1.表格语法格式2.表格属性 3.例子二、不规则表格1.跨行2.跨列3.例子一、表格在html语法中,表格主要通过< tab

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

前端CSS Grid 布局示例详解

《前端CSSGrid布局示例详解》CSSGrid是一种二维布局系统,可以同时控制行和列,相比Flex(一维布局),更适合用在整体页面布局或复杂模块结构中,:本文主要介绍前端CSSGri... 目录css Grid 布局详解(通俗易懂版)一、概述二、基础概念三、创建 Grid 容器四、定义网格行和列五、设置行

前端下载文件时如何后端返回的文件流一些常见方法

《前端下载文件时如何后端返回的文件流一些常见方法》:本文主要介绍前端下载文件时如何后端返回的文件流一些常见方法,包括使用Blob和URL.createObjectURL创建下载链接,以及处理带有C... 目录1. 使用 Blob 和 URL.createObjectURL 创建下载链接例子:使用 Blob

Vuex Actions多参数传递的解决方案

《VuexActions多参数传递的解决方案》在Vuex中,actions的设计默认只支持单个参数传递,这有时会限制我们的使用场景,下面我将详细介绍几种处理多参数传递的解决方案,从基础到高级,... 目录一、对象封装法(推荐)二、参数解构法三、柯里化函数法四、Payload 工厂函数五、TypeScript