翼度科技»论坛 编程开发 JavaScript 查看内容

前端require.js的基本用法

8

主题

8

帖子

24

积分

新手上路

Rank: 1

积分
24
require.js是一个js脚本加载器(模块化加载),它遵循AMD(Asynchronous Module Definition)规范,实现js脚本的异步加载,不阻塞页面的渲染和其后的脚本的执行,并提供了在加载完成之后的执行相应回调函数的功能。官网下载地址:https://requirejs.org/docs/download.html
废话不多说,我们直接来看一个Demo,Demo的目录结构如下所示:

其中 require_config.js 代码如下:
  1. //主要用来配置模块的加载位置(设置短模块名)
  2. require.config({
  3.     baseUrl: '/js/lib', //设置根目录
  4.     paths: { //如果没有设置根目录则需要填写完整路径
  5.         'vue': 'vue',
  6.         'axios': 'axios',
  7.         'jquery': 'jquery-3.6.3',
  8.         //paths还有一个重要的功能,就是可以配置多个路径,如果远程cdn库没有加载成功,可以加载本地的库,如下:
  9.         //'jquery': ['http://libs.baidu.com/jquery/2.0.3/jquery', '/js/lib/jquery-3.6.3'],
  10.     }
  11. });
复制代码
其中 base.js 代码如下:
  1. //define用来自定义模块
  2. //第一个参数:加载依赖模块,可以是require_config中定义的短模块名,也可以是完整的模块路径(去掉.js后缀名)
  3. //第二个参数:执行加载完后的回调函数
  4. define(['vue', 'axios'], function (vue, axios) {
  5.     //TODO 此处可以处理一些公共的逻辑
  6.     //vue.component('component-a', { /* ... */ }); //全局注册组件
  7.     return {
  8.         vue: vue,
  9.         axios: axios,
  10.         //Vue混入
  11.         mixin: {
  12.             //数据
  13.             data: function () {
  14.                 return {
  15.                     domain: '', //域名
  16.                 }
  17.             },
  18.             //组件
  19.             components: {
  20.             },
  21.             //created钩子函数
  22.             created: function () {
  23.                 console.log('This is base created');
  24.             },
  25.             //mounted钩子函数
  26.             mounted: function () {
  27.                 console.log('This is base mounted');
  28.             },
  29.             //方法
  30.             methods: {
  31.                 //测试
  32.                 doTest: function () {
  33.                     console.log('This is base doTest');
  34.                 },
  35.                 //获取域名
  36.                 getDomain: function () {
  37.                     var _this = this;
  38.                     _this.domain = 'https://www.baidu.com';
  39.                 },
  40.             }
  41.         },
  42.     };
  43. });
复制代码
其中 index.js 代码如下:
  1. //第一个参数:加载依赖模块,可以是require_config中定义的短模块名,也可以是完整的模块路径(去掉.js后缀名,根目录为require_config中设置的baseUrl)
  2. //第二个参数:执行加载完后的回调函数
  3. require(['../common/base', 'jquery'], function (base, $) {
  4.     let axios = base.axios;
  5.     var vm = new base.vue({
  6.         el: '#app', //挂载点
  7.         mixins: [base.mixin], //混入,类似基类的概念
  8.         data: {
  9.             msg: 'Hello Vue!'
  10.         },
  11.         //created钩子函数
  12.         created: function () {
  13.             console.log('This is index created');
  14.         },
  15.         //mounted钩子函数
  16.         mounted: function () {
  17.             console.log('This is index mounted');
  18.         },
  19.         //方法
  20.         methods: {
  21.             //测试
  22.             doTest: function () {
  23.                 console.log('This is index doTest');
  24.                 $('#myDiv').html('测试jquery模块是否加载成功');
  25.             },
  26.             //测试2
  27.             doTest2: function () {
  28.                 var _this = this;
  29.                 console.log('domain:' + _this.domain);
  30.                 _this.getDomain(); //在混入的base.js中
  31.                 console.log('getDomain:' + _this.domain);
  32.             }
  33.         }
  34.     });
  35. });
复制代码
其中对应的前端 HTML 代码如下:
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7.     <title>前端require的基本用法</title>
  8. </head>
  9. <body>
  10.    
  11.         <input type="button" value="doTest" @click="doTest">
  12.         <input type="button" value="doTest2" @click="doTest2">
  13.         
  14.    
  15.    
  16.    
  17.    
  18. </body>
  19. </html>
复制代码
运行结果如下:

更多内容可参考博文:https://www.runoob.com/w3cnote/requirejs-tutorial-2.html 
 
Demo源码:
  1. 链接:https://pan.baidu.com/s/1LKOJA4jKI4txO0wS8Vw8jw
  2. 提取码:bye4
复制代码
此文由博主精心撰写转载请保留此原文链接:https://www.cnblogs.com/xyh9039/p/17134885.html
版权声明:如有雷同纯属巧合,如有侵权请及时联系本人修改,谢谢!!!

来源:https://www.cnblogs.com/xyh9039/p/17134885.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具