当前位置:首页 > 日记 > 正文

vue mixins组件复用的几种方式(小结)

vue mixins组件复用的几种方式(小结)

最近在做项目的时候,研究了mixins,此功能有妙处。用的时候有这样一个场景,页面的风格不同,但是执行的方法,和需要的数据非常的相似。我们是否要写两种组件呢?还是保留一个并且然后另个一并兼容另一个呢?

不管以上那种方式都不是很合理,因为组件写成2个,不仅麻烦而且维护麻烦;第二种虽然做了兼容但是页面逻辑造成混乱,必然不清晰;有没有好的方法,有那就是用vue的混合插件mixins。混合在Vue是为了提出相似的数据和功能,使代码易懂,简单、清晰。

1.场景

假设我们有几个不同的组件,它们的工作是切换状态布尔、模态和工具提示。这些提示和情态动词不有很多共同点,除了功能:他们看起来不一样,他们不习惯相同,但逻辑是相同的。

//弹框const Modal = { template: '#modal', data() {  return {   isShowing: false  } }, methods: {  toggleShow() {   this.isShowing = !this.isShowing;  } }, components: {  appChild: Child }}//提示框const Tooltip = { template: '#tooltip', data() {  return {   isShowing: false  } }, methods: {  toggleShow() {   this.isShowing = !this.isShowing;  } }, components: {  appChild: Child }}

上面是一个弹框和提示框,如果考虑做2个组件,或者一个兼容另一个都不是合理方式。请看一下代码

const toggle = { data() {  return {   isShowing: false  } }, methods: {  toggleShow() {   this.isShowing = !this.isShowing;  } }}const Modal = { template: '#modal', mixins: [toggle], components: {  appChild: Child }};const Tooltip = { template: '#tooltip', mixins: [toggle], components: {  appChild: Child }};

用mixins引入toggle功能相似的js文件,进行混合使用

2.可以合并生命周期

//mixinconst hi = { mounted() {  console.log('this mixin!') }}//vue组件new Vue({ el: '#app', mixins: [hi], mounted() {  console.log('this Vue instance!') }});//Output in console> this mixin!> this Vue instance!

先输出的是mixins的数据

3、可以全局混合(类似已filter)

Vue.mixin({ mounted() {  console.log('hello from mixin!') }, method:{   test:function(){   }  }})new Vue({ el: '#app', mounted() {  console.log('this Vue instance!') }})

会在每一个组件中答应周期中的log,同时里面的方法,类似于vue的prototype添加实例方法一样。

var install = function (Vue, options) { // 1. 添加全局方法或属性 Vue.myGlobalMethod = function () {  // 逻辑... } // 2. 添加全局资源 Vue.directive('my-directive', {  bind (el, binding, vnode, oldVnode) {   // 逻辑...  }  ... }) // 3. 注入组件 Vue.mixin({  created: function () {   // 逻辑...  }  ... }) // 4. 添加实例方法 Vue.prototype.$myMethod = function (options) {  // 逻辑... }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

相关文章

浅谈angular2的http请求返回结果的

浅谈angular2的http请求返回结果的

返回结果,请求,浅谈,注意事项,电脑软件,实例如下:this.monitorSer.getVehicleLonAndLat(vehicleIds) .subscribe( data => { //将data下的data字符串转化为vehdata数组 this.vehData=JSON.parse(data.data); //功能实现 this.loadO…

详解node中创建服务进程

详解node中创建服务进程

服务进程,详解,电脑软件,node,背景在node工程部署中,常常涉及到三方:本地客户端、跳板机和服务器(集群)。在通过git触发gitlab hook脚本后,需要在跳板机中执行相应的ssh命令执行shell文件启动node服务器,这需要使用一个常用的命令setsid,这样当ssh…

微信筹款怎么弄微信普通筹款的使用

微信筹款怎么弄微信普通筹款的使用

使用方法,怎么弄,电脑软件,strong,  普通筹款是微信新上线的一个功能,那么微信筹款怎么使用呢?下面是小编为大家整编的微信普通筹款的使用方法,大家快来看看吧。微信普通筹款的使用方法1)打开微信应用进入页面点击下方【我】,接着点击【钱包…

js实现点击切换checkbox背景的简单

js实现点击切换checkbox背景的简单

简单实例,背景,电脑软件,js,checkbox,在制作网页的过程中,经常需要实现点击切换背景图片的效果,本文关注的是表单中checkbox背景图片切换的实现。如图,在输入用户名和密码后,用户需要选择是否记住密码图片背景为白色表示未勾选状态 。HTML源码…

详谈js中标准for循环与foreach | f

详谈js中标准for循环与foreach | f

循环,区别,标准,电脑软件,js,js中遍历数组的有两种方式var array=['a']//标准的for循环for(var i=1;i<array.length;i++){ alert(array[i])}//foreach循环for(var i in array){ alert(array[i])}正常情况下上面两种遍历数组的方式结果…

对称加密与非对称加密优缺点详解

对称加密与非对称加密优缺点详解

对称加密,优缺点,与非,详解,电脑软件,对称加密:双方使用的同一个密钥,既可以加密又可以解密,这种加密方法称为对称加密,也称为单密钥加密。优点:速度快,对称性加密通常在消息发送方需要加密大量数据时使用,算法公开、计算量小、加密速度快、加密效…

Java中int与integer的区别(基本数据

Java中int与integer的区别(基本数据

引用数据类型,基本数据类型,区别,电脑软件,Java,一、先说说int与integer的区别  int 是基本数据类型,默认值为0,不需要进行实例化integer 是引用数据类型,是int的封装类型,默认值为null,创建该类型需要进行实例化。基本数据类型是可以用“==”…

全图型PPT的制作方法是什么样的

全图型PPT的制作方法是什么样的

制作方法,全图,电脑软件,PPT,  图片视觉要有冲击力 ,文字精炼要有内涵,这就是全图型PPT!以下是小编为您带来的关于全图型PPT的制作方法,希望对您有所帮助。全图型PPT的制作方法一、大图配字二、艺术字体三、借图发挥四、蒙版色变五、色块切…

JavaScript中document.referrer的

JavaScript中document.referrer的

详解,电脑软件,JavaScript,document,referrer,前言在JavaScript中,document对象有很多属性,其中有3个与对网页的请求有关的属性,它们分别是URL、domain和referrer。URL属性包含页面完整的URL,domain属性中只包含页面的域名,而referrer属性中则保…

个性情侣签名一男一女逗比最新版一

个性情侣签名一男一女逗比最新版一

一女,情侣,个性,最新版,个性签名,  个性签名丰富多彩,反映出网民的不同的思想、心情等,透过个性签名折射出当代网民的文化心理,下面是个性情侣签名一男一女逗比,希望你喜欢。个性情侣签名一男一女逗比【经典篇】既然选择了我,那就不要抛弃我…

ppt文件中插入柱形图图表的方法是

ppt文件中插入柱形图图表的方法是

文件,方法,图图,电脑软件,ppt,  PPT的使用是必不可少的,自然很多时候我们也会用到图表,以此来更清晰明了的展示数据。ppt文件中想要插入柱形图图表,该怎么设置?以下是小编为您带来的关于ppt文件中插入柱形图图表,希望对您有所帮助。ppt文件中…

excel表格将打印预览功能怎么添加

excel表格将打印预览功能怎么添加

工具栏,表格,功能,电脑软件,excel,  在excel中, 在打印预览界面看到的版面效果,就是实际打印输出后的实际效果;因此,通过打印预览,可以非常直观地检查版面是否符合要求。以下是小编为您带来的关于excel表格将打印预览功能添加到工具栏,希望对…