zoukankan      html  css  js  c++  java
  • js

    一、require:运行时调用,import:编译时调用。通常我们还会区别它们怎么导入模块的

    1.运行时调用是啥->指的是在运行时可以随时导入的模块

     

     

     

    2.编译时调用又是啥?指的是编译时期就要调用了,要定义在顶部否则会报错

     

     

     

    二、如果require和import同一模块


    1.毫无疑问会报出模块导入错误,它们之间没有优先级(先占为主)

     

     

     

    三、require和import的本质区别

     require是赋值过程而import是解构过程

     

    四、import使用

    //util.js
    
    function console1() {
    	console.log(1111);
    }
    
    function console2() {
    	console.log(2222);
    }
    
    
    
    module.exports = {
    	console1,
    	console2
    }

    1. 导入所有模块(默认值)

    // const util = require('@/utils/util.js');
    	import util from '@/utils/util.js';
    	// import * as utils from '@/utils/util.js';
    	export default {
    		data() {
    			return {
    				title: 'Hello'
    			}
    		},
    		onLoad() {
    			console.log(util);
    		},
    		methods: {
    
    		}
    	}
    

     

    2.导入所有模块且重命名空间

    	import * as utils from '@/utils/util.js';
    	export default {
    		data() {
    			return {
    				title: 'Hello'
    			}
    		},
    		onLoad() {
    			console.log(utils);
    		},
    		methods: {
    
    		}
    	}
    

     

    3.导入单个模块内的函数

    	import {
    		console1
    	} from '@/utils/util.js';
    	export default {
    		data() {
    			return {
    				title: 'Hello'
    			}
    		},
    		onLoad() {
    			console1();
    			// console.log();
    		},
    		methods: {
    
    		}
    	}
    

     

    4.导入多个模块函数

    import {
    		console1,
    		console2
    	} from '@/utils/util.js';
    	export default {
    		data() {
    			return {
    				title: 'Hello'
    			}
    		},
    		onLoad() {
    			console1();
    			console2();
    			// console.log();
    		},
    		methods: {
    
    		}
    	}
    

     

    5.导入时重命名模块内的函数(主要是模块函数名过长进行重命名,可单个或多个命名)

    import {
    		console1 as console11,
    		console2 as console22
    	} from '@/utils/util.js';
    	export default {
    		data() {
    			return {
    				title: 'Hello'
    			}
    		},
    		onLoad() {
    			console11();
    			console22();
    			// console.log();
    		},
    		methods: {
    
    		}
    	}
    

      

     

     

     6. 导入默认值(先必须导入默认值再导入模块内的函数)

    import util, {
    		console1
    	} from '@/utils/util.js';
    	export default {
    		data() {
    			return {
    				title: 'Hello'
    			}
    		},
    		onLoad() {
    			console.log(util);
    			console1();
    		},
    		methods: {
    
    		}
    	}
    

     

    7.动态导入import

    export default {
    		data() {
    			return {
    				title: 'Hello'
    			}
    		},
    		onLoad() {
    			// 动态加载,vue不支持这种方式。React支持,但vue支持组件懒加载(按需)
    			// import('@/utils/util.js')
    			// 	.then((module) => {
    			// 		// Do something with the module.
    			// 		console.log(module)
    			// 	})
    		},
    		methods: {
    
    		}
    	}
    

     

    8. import { export1 , export2 as alias2 , [...] } from "module-name"

    [...]代表可选参数,无其它意义

     

     

    五、require使用

    1. 模块全部导入

    const util = require('@/utils/util.js');
    	export default {
    		data() {
    			return {
    				title: 'Hello'
    			}
    		},
    		onLoad() {
    			console.log(util);
    		},
    		methods: {
    
    		}
    	}
    

      

    2. 单个模块内的函数导入

    const util = require('@/utils/util.js').console1;
    	export default {
    		data() {
    			return {
    				title: 'Hello'
    			}
    		},
    		onLoad() {
    			console.log(util);
    		},
    		methods: {
    
    		}
    	}
    

     

    六、主流模块(CommonJS和AMD以及CMD规范

    可以详细看看以下两篇文章:

    1. https://www.jianshu.com/p/dd08f4095a49

    2. https://www.cnblogs.com/libin-1/p/7127481.html

  • 相关阅读:
    以管理员权限运行程序?
    vb6 判断64位操作系统
    vb6动态创建webbrowser
    vb6中webbrowser控件树转换备忘
    vb6异步ADO操作
    sql compact 使用EF无法更新的问题?
    本地vbs调试快速显示输出
    c# 加密转载 备忘
    vb.net 动态调用api
    SharePoint List 查看器
  • 原文地址:https://www.cnblogs.com/cisum/p/12192063.html
Copyright © 2011-2022 走看看