hdjs---后盾网requireJS课程
hdjs---后盾网requireJS课程
一、总结
一句话总结:
requireJS是js端模块化开发,主要是实现js的异步加载,和管理模块之间的依赖关系,便于代码的编写和维
1、requireJS目录结构中的app目录和lib目录的作用是什么?
app目录:存用户自己写的js(自定义模块)
lib目录:存依赖的js文件
2、requireJS最简单实例?
在main.js的paths中配置好jquery,在页面中中使用:require(['jquery'], function ($) {
main.js require.config({paths: {'jquery': '/lib/jquery.min',}, });页面代码 <!doctype html> <html lang="en"> <head><meta charset="UTF-8"><script data-main="../resource/main" src="../resource/require.js"></script> </head> <body> <button onclick="test()">测试</button> <script>function test() {require(['jquery'], function ($) {$('body').css({'backgroundColor': 'red'});})} </script> </body> </html>
3、如下代码会出现什么问题以及解决方式?
|||-begin
<!doctype html> <html lang="en"> <head><meta charset="UTF-8"><script data-main="../resource/main" src="../resource/require.js"></script> </head> <body> <button onclick="test()">测试</button> <script>require(['jquery'], function ($) {$('body').css({'backgroundColor': 'red'});}) </script> </body> </html>
|||-end
问题:require.js加载完之后,main.js的加载和下面的script中的代码会同时运行,所以会出现jquery找不到的情况(就是运行到下面代码的时候jquery还没来得及加载)
解决方式:加载main.js的代码可以放到加载require.js后面
原理:main.js中是放置的配置,执行的代码放在配置的代码之后就可以解决问题
<script src="../resource/require.js"></script> <script src="../resource/main.js"></script>
4、require.js自定义模块实例?
- 前一个参数表示依赖的模块,这里依赖jquery,回调函数里面就写模块定义的函数
- 使用的时候会将define中return部分的值给b,所以b.change()就可以执行
define(['jquery'], function () {return {change: function () {$('body').css({'backgroundColor': 'red'});},show: function () {alert('后盾人')},message: function () {alert('houdunren.com')}} });使用 <script> require(['util'],function(b){b.change(); }) </script>
5、自定义模块引用依赖的两种方式?
+ 当后面所有的方法都需要jquery的时候,可以在define中引入:define(['jquery'], function () {
+ 只有某个方法需要jquery的时候,就在某个方法里面引入:require(['jquery'],function($){
当后面所有的方法都需要jquery的时候,可以在define中引入 define(['jquery'], function () {return {change: function () {$('body').css({'backgroundColor': 'red'});},} });只有某个方法需要jquery的时候,就在某个方法里面引入 define([], function () {return {change: function () {require(['jquery'],function($){$('body').css({'backgroundColor': 'red'});})},} });
6、require.js如何解决多个模块之间的依赖关系(比如bootstrap需要依赖jquery,还有css)?
在shim中:'bootstrap': { 'deps': ['jquery', 'css!../css/bootstrap.min.css', 'css!../css/font-awesome.min.css'] }
require.config({baseUrl: '../resource/app',paths: {'css': '../lib/css.min','bootstrap': '../lib/bootstrap.min',},shim: {'bootstrap': {'deps': ['jquery', 'css!../css/bootstrap.min.css', 'css!../css/font-awesome.min.css']}} });'css': '../lib/css.min' 是因为后面bootstrap需要引css,所以要把css库加进来
7、bootstrap库依赖jquery,后面比如自定义模块util.js依赖bootstrap,那么util加载的时候也会自动加载jquery库么?
会:会加载这些依赖的库,无论直接依赖还是间接依赖
8、非标准化的AMD的模块怎么使用?
exports或者init
/app/hd.js function modal() {alert('后盾人 modal'); } function success() {alert('后盾人 success'); }main.js require.config({baseUrl: '../resource/app',paths: {'hd': 'hd',},shim: {'hd': {// exports: 'modal',init: function () {return {modal: modal,success: success,}}},} });页面 <script> require(['hd'],function(f){f.modal(); }) </script>
9、标准化的AMD模块长什么样?
define定义,return返回:define(['bootstrap'], function () {
define(['bootstrap'], function () {return {change: function () {$('body').css({'backgroundColor': 'red'});},show: function () {alert('后盾人')},message: function () {alert('houdunren.com')}} });
10、老的版本的jquery不是标准化的AMD模块,那么require.js怎么引用?
因为只有一个$对象,所以直接exports: '$'即可
require.config({baseUrl: '../resource/app',paths: {'jquery': 'jquery',},shim: {'jquery': {exports: '$',},} });
二、后盾网requireJS课程
代码地址:链接:https://pan.baidu.com/s/1ztIk2BQL0XWJWUQXBMsnFw
提取码:53ln
1、目录结构
2、代码
配置main.js
require.config({baseUrl: '../resource/app',paths: {'hd': 'hd','css': '../lib/css.min','jquery': '../lib/jquery.min','angular': '../lib/angular.min','bootstrap': '../lib/bootstrap.min',},shim: {'hd': {// exports: 'modal',init: function () {return {modal: modal,success: success,}}},//houdunren.com'bootstrap': {'deps': ['jquery', 'css!../css/bootstrap.min.css', 'css!../css/font-awesome.min.css']}} }); // require(['jquery', 'angular'], function ($, angular) {// $('body').css({'backgroundColor': 'red'}); // })
自定义模块app/hd.js
function modal() {alert('后盾人 modal'); } function success() {alert('后盾人 success'); }
自定义模块app/util.js
define(['bootstrap'], function () {return {change: function () {$('body').css({'backgroundColor': 'red'});},show: function () {alert('后盾人')},message: function () {alert('houdunren.com')}} });
1、加载require.js
<!doctype html> <html lang="en"> <head><meta charset="UTF-8"><script data-main="../resource/main" src="../resource/require.js"></script> </head> <body></body> </html>
2、require.js简单实例
<!doctype html> <html lang="en"> <head><meta charset="UTF-8"><script data-main="../resource/main" src="../resource/require.js"></script> </head> <body> <button onclick="test()">测试</button> <script>function test() {require(['jquery', 'angular'], function ($, angular) {$('body').css({'backgroundColor': 'red'});})} </script> </body> </html>
3、异步加载实例
<!doctype html> <html lang="en"> <head><meta charset="UTF-8"><script src="../resource/require.js"></script><script src="../resource/main.js"></script> </head> <body> <button onclick="test()">测试</button> <script>// function test() {// require(['jquery', 'angular'], function ($, angular) {// $('body').css({'backgroundColor': 'red'});// })// }// require(['lib/jquery.min', 'lib/angular.min'], function () {// $('body').css({'backgroundColor': 'red'});// }) require(['jquery', 'angular'], function ($, angular) {$('body').css({'backgroundColor': 'red'});}) </script> </body> </html>
问题:require.js加载完之后,main.js的加载和下面的script中的代码会同时运行,所以会出现jquery找不到的情况(就是运行到下面代码的时候jquery还没来得及加载)
解决方式:加载main.js的代码可以放到加载require.js后面
原理:main.js中是放置的配置,执行的代码放在配置的代码之后就可以解决问题
4、自定义模块
<!doctype html> <html lang="en"> <head><meta charset="UTF-8"><script src="../resource/require.js"></script><script src="../resource/main.js"></script> </head> <body> <script> require(['util'],function(b){b.change(); }) </script> </body> </html>
5、非AMD标准化的模块
<!doctype html> <html lang="en"> <head><meta charset="UTF-8"><script src="../resource/require.js"></script><script src="../resource/main.js"></script> </head> <body> <script> require(['hd'],function(f){f.modal(); }) </script> </body> </html>
转载于:https://www.cnblogs.com/Renyi-Fan/p/11593493.html
hdjs---后盾网requireJS课程相关推荐
- 后盾网lavarel视频项目---3、lavarel中子控制器继承父控制器以判断是否登录
后盾网lavarel视频项目---3.lavarel中子控制器继承父控制器以判断是否登录 一.总结 一句话总结: 在common控制器的构造方法中验证登录中间件,其它的控制器继承common控制器 p ...
- 后盾网lavarel视频项目---lavarel多表关联一对多操作实例
后盾网lavarel视频项目---lavarel多表关联一对多操作实例 一.总结 一句话总结: 1.一对多中多那个部分的数据前端通过json弄到服务器 2.所有通过一操作多的时候,都要用上模型中定义的 ...
- 后盾网lavarel视频项目---图片上传
后盾网lavarel视频项目---图片上传 一.总结 一句话总结: 前端还是普通的前端操作,前端上传图片的地址就是图片上传的路由,后端代码也很简单 public function uploader(R ...
- 后盾网lavarel视频项目---vue实现动态添加和删除板块
后盾网lavarel视频项目---vue实现动态添加和删除板块 一.总结 一句话总结: 原理就是:列表时根据vue中的videos变量中的元素来遍历的,初始时videos:[{title:'',pat ...
- 后盾网lavarel视频项目---2、phpstorm显示类中的方法快捷键
后盾网lavarel视频项目---2.phpstorm显示类中的方法快捷键 一.总结 一句话总结: ctrl + f12 1.npm安装js插件? npm install hdjs 2.phpstor ...
- 后盾vip php框架,后盾网实战VIP教程之ThinkPHP微博项目系列培训
php教程 当前位置:主页 > php教程 > 后盾网实战VIP教程之ThinkPHP微博项目系列培训 后盾网实战VIP教程之ThinkPHP微博项目系列培训 教程大小:1.56GB ...
- 后盾php框架下载,后盾网HD框架下载_后盾网HD框架官方下载-太平洋下载中心
后盾网HD框架是Php源码频道下深受用户喜爱的软件,太平洋下载中心提供后盾网HD框架官方下载.HDPHP 后盾网HDPHP框架是一个为用PHP程序语言编写网络应用程序的人员提供的软件包. 提供强大的. ...
- 后盾网MySQL系列教程
课程简介: 后盾网MYSQL视频教程 ,总共八集 ,向军主讲,视频清晰,很实用的数据库教程,希望大家共同学习.每天一小步,人生一大步! 课程讲师:向军 讲师介绍:HDPHP&HDCMS作者,现 ...
- 后盾网lavarel视频项目---lavarel中的tinker是什么
后盾网lavarel视频项目---lavarel中的tinker是什么 一.总结 一句话总结: 是用来调试laravel,可以打印变量或对象信息,显示函数代码,对数据库写入和查询数据 laravel中 ...
- 尚学堂requireJs课程---3、私有和公有属性和方法
尚学堂requireJs课程---3.私有和公有属性和方法 一.总结 一句话总结: 在 [模块] 的基础上,在return对象里面的方法和属性就是公有的(因为外部可以访问),不在的就是私有的 < ...
最新文章
- 程序员成熟的几个标志
- jenkins和docker实现自动化构建部署
- laravel5.8笔记六:公共函数和常量设置
- c#使用HttpClient调用WebApi
- vue.js devtools的安装
- Druid-目前最好的连接池
- enctype=multipart/form-data的表单无法获取表单中除了type=file以外的其他参数 commons-fileupload 获取除file外其他参数...
- lingo程序与c语言的区别,lingo与高级语言连接(以C++)为例
- C++课程设计班级管理系统
- 【入坑树莓派】烧录系统都烧录了三次(树莓派默认账户密码错误/已删除)
- 读书笔记_《深度学习与计算机视觉》.叶韵 编著.田疆 西门子高级研究员 作序.机械工业出版社
- 模式识别复习 思维导图
- 自然语言分析包NLTK安装及入门
- Audio Hijack教程:轻松捕获iOS设备中的音频
- 打开U盘 提示 服务器无法运行,win10打开u盘提示“系统资源不足 无法完成请求的服务”怎么办...
- loss 加权_为每个类别/实例编写自定义损失加权,对,的,loss
- 2018最新微信小程序经典案例开发视频教程合集
- 【毕业设计】STM32单片机的智能手环 - 蓝牙手环 物联网
- Excel小技巧:合并单元格且不丢失数据
- Java violate变量
热门文章
- android 免root 免流,安卓无需Root一键免流软件合集,具体哪个能用自测
- MySQL over函数的用法
- qq互联登录授权php配置,开通qq互联开放平台登陆功能的步骤
- python 多行注释 字符串_python多行注释和跨行字符串
- vs2017 安装Qt VS Tools ,新建项目没有Qt GUI Application选项 ,解决方法
- 《Python程序设计实验指导书》81个实验项目选做参考
- 模2除法(CRC校验码计算)模2除法和算数除法不同,文中例子120/13用模2除法结果:商11余数7,而算数除法结果:商9余数3
- 中级网络工程师是什么?主要是考什么,有什么用?
- sap服务器的文件管理,SAPPLM 文档管理介绍
- ftp服务器显示密码,Ftp服务器怎么查看密码