vue2【详解】mixins —— 抽离公共逻辑

mixins 用于在 Vue 中便捷复用变量、方法、组件引用、生命周期等

使用方法

  1. 创建文件myMixin.js
js 复制代码
export const myMixin = {
    data() {
        return {
            webName: '朝阳的博客'
        }
    },
    created() {
        alert(`欢迎来到${this.webName}`)
    },
    methods: {
        hi() {
            alert(`欢迎来到${this.webName}`)
        }
    }
}
  1. vue文件中引入并使用myMixin.js
js 复制代码
import {myMixin} from './myMixin.js'
js 复制代码
export default {
    mixins: [myMixin],

mixins的值为一个数组,可以传入多个minxins

js 复制代码
 mixins: [myMixin1,myMixin2],

注意事项

  • mixins中的变量和方法与vue文件中的变量和方法同名时,vue文件中的变量和方法会覆盖mixins中的
  • mixins中函数(如生命周期钩子函数)会在vue中的函数之前执行
    • 如mixins和vue中都有mounted生命周期钩子函数,则mixins中的先执行,vue文件中的后执行。
  • 不同vue文件引入同一个mixins时,mixins中定义的变量都属于各自的vue实例,相互之间互不影响。
  • 全局混入会影响每个单独创建的 Vue 实例 ,包括第三方组件,所以使用时格外小心。

mixins 的缺点

  • 变量来源不明确,不利于阅读
  • 多 mixin 可能会造成命名冲突
  • mixin 和组件可能出现多对多的关系,复杂度较高
相关推荐
敲敲了个代码5 小时前
从硬编码到 Schema 推断:前端表单开发的工程化转型
前端·javascript·vue.js·学习·面试·职场和发展·前端框架
张雨zy7 小时前
Pinia 与 TypeScript 完美搭配:Vue 应用状态管理新选择
vue.js·ubuntu·typescript
dly_blog7 小时前
Vue 响应式陷阱与解决方案(第19节)
前端·javascript·vue.js
console.log('npc')7 小时前
Table,vue3在父组件调用子组件columns列的方法展示弹窗文件预览效果
前端·javascript·vue.js
C_心欲无痕8 小时前
vue3 - markRaw标记为非响应式对象
前端·javascript·vue.js
熬夜敲代码的小N9 小时前
Vue (Official)重磅更新!Vue Language Tools 3.2功能一览!
前端·javascript·vue.js
辰同学ovo9 小时前
Vue 2 路由指南:从入门到实战优化
前端·vue.js
小彭努力中9 小时前
1.在 Vue 3 中使用 Cesium 快速展示三维地球
前端·javascript·vue.js·#地图开发·#cesium·#vue3
一字白首9 小时前
Vue3 进阶,新特性 defineOptions/defineModel+Pinia 状态管理全解析
前端·javascript·vue.js
Sylus_sui9 小时前
Vue2 与 Vue3 数据双向绑定:区别与原理详解
前端·javascript·vue.js