视频资源来自:b站coderwhy王红元老师——最全最新Vue、Vuejs教程,从入门到精通
文件仅为个人观看视频后的学习心得笔记,用于个人查看和记录保存。文中定有疏漏错误之处,恳请指正。
本节目录:
为什么需要模块化
前端模块化
为什么需要模块化
JavaScript原始功能
js文件太多,可能造成变量冲突。
加载的顺序不同,可能造成覆盖
匿名函数的解决方案
使用闭包,把函数括起来
(function () {
var name = '小红';
var flag = false;
console.log(name);
}
function sum(aa,bb) {
return aa+bb
}
)()
使用模块作为出口
//main.js
;(function () {
//1.想使用flag
if(moduleA.flag){
console.log('小明是天才');
}
//2.使用sum函数
console.log(moduleA.sum(20,30));
}
)()
//aaa.js
var moduleA=(function () { //模块化!不同的模块这个名字必须不同,不然就冲突了
//导出的对象
var obj= {}
var name = '小红';
var flag = true;
function sum(a,b){
return a+b
}
//要导出的东西写在这。没导出别人就用不了
obj.flag = flag;
obj.sum = sum;
return obj
}
)()
常见的模块化规范:CommonJS、AMD、CMD、ES6的Modules
CommonJS(了解)
模块化两个核心:导出、导入
//ES6对象的增强写法,导出 exports !
module.exports = {
flag:flag,
sum:sum
}
//解析对象 require!!
//方法1
var aaa = require('./aaa.js')
var flag=aaa.flag;
//方法2
var {flag,sum} = require('./aaa.js')
ES6的export指令
<!--type="module"表示模块,之后不会有命名冲突-->
<script src="aaa.js" type="module"></script>
<script src="bbb.js" type="module"></script>
导入的{}中定义的变量
let name = '小明'
var age = 18
var flag = true
function sum(num1,num2) {
return num1+num2
}
if(flag){
console.log(sum(20,30))
}
//复杂写法失败了,暂时只用简便写法
export {
flag,sum
}
import {flag,sum} from "./aaa.js"
if(flag)
{
console.log(sum(10,20))
}
另一种导出方式:直接导入export定义的变量
export var num1=1000;
export var height=1.88;
import {num1,height} from "./aaa.js"
console.log(num1+' '+height)
导出函数/类:export的function
export function mul(num1,num2) {
return num1*num2
}
export class Person {
run(){
console.log("run")
}
}
import {mul,Person} from "./aaa.js";
console.log(mul(10,20))
const p=new Person();
p.run()
自己命名导入的数据叫什么:export default
<font color=#d5a347 >默认导出,全模块最多只能有一个</font>
const address='北京市'
export default address
import addr from "./aaa.js";
console.log(addr)
统一全部导入
<font color=#909534 size=2>*:通配符</font>
import * as aa from "./aaa.js"
console.log(aa.flag)
总目录:
邂逅Vuejs
Vue基础语法
组件化开发
前端模块化
webpack详解
Vue CLI详解
vue-router
Promise的使用
Vuex详解
网络模块封装
项目实战