首页 > 其他 > 详细

【Vue】04 模块化开发演变

时间:2020-07-24 17:53:55      阅读:58      评论:0      收藏:0      [点我收藏+]

JS最初的目的是用来做表单验证和动画效果,可以让网页更加生动。

但是使用Ajax,前后端分离,页面承担了更多的事情,JS的代码量暴增,代码管理维护逐渐困难

我们需要将JS代码抽取出来,模块化处理,

但是问题也出现了,各个模块的变量会污染。

 

JS文件a:

flag = true;

JS文件b:

flag = false;

页面:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="js/a.js"></script>
    <script src="js/b.js"></script>
    <script type="text/javascript">
        if (flag) console.log("flag的值为:" + flag);
    </script>
</head>
<body>

</body>
</html>

效果:

技术分享图片

可以发现,flag是false,但是我们希望的是使用A文件的flag,这就是变量污染

 

使用模块作为出口:

A文件:

moduleA = (function () {
    return true;
})();

B文件:

moduleB = (function () {
    return false;
})();

页面使用:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="js/a.js"></script>
    <script src="js/b.js"></script>
    <script type="text/javascript">
        console.log("flag的值为:",moduleA);
    </script>
</head>
<body>

</body>
</html>

效果:

技术分享图片

这样我就明确知道我需要的是什么模块的变量了

 

我们希望引用模块的时候不止一个变量应该被使用:

所以我们可以以一个对象的形式去返回:

moduleB = (function () {
    let obj = {};
    obj.property1 = "sadas";
    obj.property2 = true;
    obj.property3 = [‘sdd‘, ‘dsd‘, ‘dsa‘, ‘dsd‘, ‘sds‘,];
    obj.property4 = {
        prop1 : "sadas"
    };
    obj.property5 = 1000;
    return obj;
})();

效果:

技术分享图片

这就是模块化的雏形

 

【Vue】04 模块化开发演变

原文:https://www.cnblogs.com/mindzone/p/13371461.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!