为了账号安全,请及时绑定邮箱和手机立即绑定

vue-api之mixins混入

标签:
Vue.js

平时vue官网介绍的api一般不用到都很少回去关注,这次在一个github的一个开源项目中又看到一个mixins这个api。
官方的文档说明是这样的:

mixins 选项接受一个混入对象的数组。这些混入实例对象可以像正常的实例对象一样包含选项,他们将在 Vue.extend() 里最终选择使用相同的选项合并逻辑合并。举例:如果你的混入包含一个钩子而创建组件本身也有一个,两个函数将被调用。 Mixin 钩子按照传入顺序依次调用,并在调用组件自身的钩子之前被调用。

!!!先提一下这里官方不建议我们将mixins用到全局,不然有可能会影响到一些第三方插件。
意思就是说一些某几个页面在如created或者mounted这样的生命周期中要执行的方法可以统一封装到一个公共的js中然后再需要的页面通过mixins这个api来使用,这样在这个页面中的生命周期中就会有mixins中的方法了。
这里的程序执行顺序会先执行mixins的方法完成之后才会去执行页面生命周期中的方法,mixins的执行顺序是按照引入的顺序进行的。
mixins.js

export default {   data() {     return {       mixinsMsg: 'it is mixins'     }   },   created() {     console.log(this.mixinsMsg, 'mixins created')   },   mounted() {     console.log(this.mixinsMsg, 'mixins mounted')   } }

mixins2.js

export default {   data() {     return {       mixinsMsg: 'it is mixins2'     }   },   created() {     console.log(this.mixinsMsg, 'mixins2 created')   },   mounted() {     console.log(this.mixinsMsg, 'mixins2 mounted')   } }

mixins.vue

<template>   <div class='mixins'>     mixins   </div> </template> <script> import mixin from '../../util/mixins.js' import mixin2 from '../../util/mixins2.js' export default {   data() {     return {       mixinsParents: 'mixinsParents'     };   },   mixins: [mixin,mixin2],   created() {     console.log(this.mixinsParents, this.mixinsMsg, 'parents created')   },   mounted() {     console.log(this.mixinsParents, this.mixinsMsg, 'parents mounted')   } } </script> <style scoped>    </style>

执行结果

https://img1.sycdn.imooc.com//5d8ef7180001391103850162.jpg

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Web前端工程师
手记
粉丝
6
获赞与收藏
35

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消