首页 > 其他分享 >模块化开发

模块化开发

时间:2023-01-30 10:01:39浏览次数:32  
标签:function 模块化 导出 module js 开发 模块 import

1、模块化的发展过程

var moduleObj = {
    userName: 'zhangsan',
    fn: function () {
        console.log('hello world')
    }
}

使用方式

<html>
    <head>       
    </head>
    <body>
        <script src="a.js"></script>
        <script>
         moduleObj.fn()
        </script>
    </body>
</html>

立即执行函数的方式

通过立即执行函数的方式为模块提供私有空间

; (function () {
    var userName = 'lisi';
    function fn1() {
        console.log(userName);
    }
    function fn2() {
        console.log('hello world')
    }
    window.moduleObj = {
        fn1: fn1,
        fn2: fn2
    };
})()

2、模块化规范说明

CommonJS它是node.js中提到的一个规范。也就是说我们在写Node.js的时候,必须符合CommonJS的规范。

        CommonJS规范要求
        1、一个文件就是一个模块
        2、 通过module.exports导出成员项
        3、通过require函数加载模块
        4、每个模块都有单独的作用域。

AMD(Asynchronous Module Definition),翻译过来就是异步的模块定义规范。

 define('moduleA',['jquery','./moduleB'],function($,moduleB){
            return{
                fn:function(){
                    // $('p')

                }
            }
        })
        require(['./moduleA'],function(moduleA){
            moduleA.fn();
        })

3、ES Module基本使用

1、自动采用了严格模式
2、每个es module 都是运行在单独的私有的作用域中
3、`ES module`通过CORS的方式请求外部的JS模块,如果服务端不支持`CORS`,则会出现跨域的问题。
4、ES module的script标签会延迟执行脚本,类似于添加了defer.

4、导出的注意事项

1、注意语法的问题
2、通过export 对成员进行导出操作,导出的是成员的引用
3、导出的成员是只读的,那么我们导入了以后是不能对成员进行修改的。

5、导入的注意事项

1、import后面的from跟的是导入的文件的路径,并且是一个完整路径。
2、如果我们这里是执行某个模块,并不需要提取其中的成员
import {} from './module.js'
import './module.js
3、如果某个模块中导出的成员比较多,同时我们都需要这些导出的模块成员,
import * as m from './module.js'
4、如果需要进行动态的导入
import('./module.js').then(function(module) {
        console.log(module.)
   })
 5、在进行导出的时候,使用了export 和export default,导入import应该怎样进行处理?
 import title, { userName, userAge } from "./module.js";

标签:function,模块化,导出,module,js,开发,模块,import
From: https://www.cnblogs.com/P1Kaj1uu/p/17074531.html

相关文章

  • 测试开发必知必会:Pytest框架实战
    每天进步一点点,关注我们哦,每天分享测试技术文章本文章出自【码同学软件测试】码同学公众号:自动化软件测试,领取资料可加:magetest码同学抖音号:小码哥聊软件测试应用场景:......
  • 富文本编辑器 quill.js 开发(二): 光标和选区
    术语表首先我们需要知道一些术语,才能更好地理解,如果您已经了解,可以跳过这一段锚点(anchor)锚指的是一个选区的起始点(不同于HTML中的锚点链接)。当我们使用鼠标......
  • uniapp开发微信小程序当前页面不可转发
    创建一个mixins,我的文件路径为:common/share.jsexportdefault{onShareAppMessage(res){//发送给朋友return{}},onShareTimeline(res){/......
  • vue.js客服系统实时聊天项目开发(十一)处理发送消息enter事件以及实现ctrl+enter换行
    当我们的在线客服系统,输入框发送消息的时候,可以直接回车发送消息,并且要支持ctrl+enter是换行操作那么我们的html事件部分是这样写<textareaclass="chatAreaInput"v-mo......
  • WinForm开发优化事项
    早期1、界面拉伸情况处理,界面放大情况处理。3、  中期  1、尽可能写每天的更新日志、  发布前1、版本号修改1、代码备份,与代码配套的部署文档编写,配套的......
  • openwrt开发使用-制作patch补丁
    前言今天分享的内容是openwrt里面使用patch文件进行自己定制化开发。作者:良知犹存转载授权以及围观:欢迎关注微信公众号:羽林君或者添加作者个人微信:become_me安装quil......
  • vue.js客服系统实时聊天项目开发(十)过滤xss字符内容-防止xss攻击
    我们在发送消息给用户的时候,都要进行过滤xss字符,xss是跨站脚本攻击,实质上就是发送了html或js代码,现在我们在vue项目中对内容进行一下过滤在vue中安装如下:npminstallxs......
  • Android开发 自定义View_时钟
    前言自定义View实现时钟涉及到三角函数,如果你对三角函数不甚了解或者已经遗忘,请参考我的博客:圆与三角函数的公式与使用  这篇博客详细解释了三角函数公式与对应坐......
  • 区分Python开发高级和初级工程师的五个技巧汇总
    1.引言在本文中,我们将以高级方式而不是初级方式来研究五种解决常见编码问题的方法。每一个编码问题都源于某个常见的实际问题抽象,许多问题在日常工作中反复出现多次,熟练掌......
  • 标准&有效的项目开发流程
    代码版本管理在项目中,代码的版本管理非常重要。每个需求版本的代码开发在版本控制里都应该经过以下几个步骤。在master分支中拉取该需求版本的两个分支,一个feature分支......