ES6模块化、Vue模块以及混入(Mixin)
ES6的模块化:在不同的模块中可以导入和导出不同类型的变量,每一个模块都是独立的,在模块中声明的变量都是局部变量,不同模块之间变量名互不干扰。其核心主要是两个部分,即导入(import)和导出(export)在需要用到的地方对其进行引入。exports命令用于规定该模块的对外接口是什么,它可以导出多种形式,比如变量、函数,对象等,在导出时要注意有具名导出和默认导出,但是一个模块只能有一个默认导出,export必须提供对外的接口。通过模块化引入的应该独立的模块和逻辑结构,其变量和方法都是独有的,基于Vue框架开发时,我们可以通过此种方式引入vue组件也可以引入当前组件模块用到的方法、数据以及相关路由等信息。
混入(Mixin)的概念是Vue框架提出的一种机制,它也是为了减少相同的代码冗余,但是它是用来定义不同模块之间共享的选项和逻辑,其可以包含一个vue模块所包含的数据、方法、Vue生命周期函数等,将相同的逻辑提取出来,放入一个混用中,然后进行调用。混入的使用有点类比于继承,子元素可以继承父元素所有的属性和方法,而且生命周期函数在执行时有先后顺序,先执行mixin中的,后执行组件的,且混入中的this指向均指向混入的模块自己,应用了相同混入文件的各个模块其数据调用和逻辑互不干扰。但是混入的缺点在于其会引入命名冲突和命名覆盖的问题,而且会使得项目更加难以维护和管理。
这两种方法都是用来减少相同代码冗余的,只不过在使用的时候要注意合适的使用场景,对于可以运用模块化的复用方法,其实采用混入也可以达到同样复用的效果,但是采用混入实现的复用却并不一定能够采用模块化实现,对于大型前端项目来说应用混入给项目带来的问题也不可忽视,因此要基于方法的具体逻辑来选择其合适的复用方法。
,