vue的mixin提升

刚写想了想这个mixin实现的功能可以用组件完成 依托vuex其实也能实现 但是为什么要有mixin这个东西呢?于是百度了一下有了一点总结

mixin与vuex的区别:

Vuex:主要是做组件的状态管理的,他里面的变量和参数在每个组件都可以修改和使用,在其他地方进行了修改之后,其他组件里面的变量值也会发生改变。

mixins:可以用来定义共用的变量,在每个组件中使用,引入组件中之后,各个变量是相互独立的,值的修改在组件中不会相互影响。
mixin与公共组件的区别:

组件:在父组件中引入子组件,等于在父组件中创建一片独立的空间给子组件,然后互相传值,本质上两者是相对独立的。

mixin:则是在引入组件之后与组件中的对象和方法进行合并,相当于扩展了父组件的对象与方法,可以理解为形成了一个新的组件。

  写一下吧,首先在我的MyUi里面写一个mixin.js

 然后混入要使用的组件

 先引入 ,然后注册一下,再使用 就是这么简单的步骤 

 考虑到mixin再不同组件中变量不干扰

我再另外一个组件里卖弄引入,然后进行+1操作

 它显示是1,而第一个组件没有操作a,显示的是0,可以证明在不同组件中使用,对变量的操作是相互不影响的。而vuex,你在其他组件对里面的值进行操作,是互相影响的.

mixin混入组件之后如果方法属性什么的一样冲突了,会被组件的方法属性覆盖

我在mixin里面定义一个方法log,在组件中也定义个方法log,都在created周期的时候执行,看看会发生什么?

 

 控制台打印出来的结果是这样

 由此可见是mixin里面的log被覆盖了,我看到这两个输出的时候,又很好奇这两个log哪个先哪个后呢?所以。。。。

组件里面的方法改个名字再打印看一下

 这结果一目了然,mixin里面的created以及methods里面的方法会合并之后,先执行mixin里面的,再执行组件的

  

----------------------------------------

下面这些是看别人文章写的一些想法

mixins是干什么的,它是一个混入的对象,结构和咱们平时vue页面中的script中的内容基本一样。

使用场景:如组件刷新还要保存一些数据

在beforedestroy生命周期里面 把值存到localstorage里面,然后在created里面取出来再清除掉local里面的值 虽然我觉得多此一举 但是是一个思路,哎```看着就是高级

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值