引子
最近刚好重读vue文档,发现了自己之前不用的mixin混入,才发现以前重复写的代码是多么愚蠢。
对于现在的vue来说,dom结构重复的话可以用组件封装,js方法重复的话可以用mixin混入,css重复的话可以用@import引入
,那么,当你开发一个功能相似,ui布局相差不多的页面时,只需抽取重复部分,一个超级简单的即插即用的代码模块就这么诞生了!!!
例子
比如我们写多个根据渠道判定ui以及特定功能的登录页。
首先我们先要创建一个login文件夹,放各种渠道的登录页,将登录页背景设置为组件,登录框也制作为组件,抽取公用js方法写入mixin,抽取通用css样式通过@import引入,由于不同渠道要求的ui样式不一样,我们这边要求的是根据不同渠道添加不同的登录标题以及背景挂件,这时,我们在登录背景组件中设置2个插槽slot,分别用于放置登录标题以及背景挂饰,新增的登录标题和挂饰样式单独写在不同登陆页,或者弄成一个css文件集合统一放置。