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

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

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

使用方法

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

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

 mixins: [myMixin1,myMixin2],

注意事项

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

mixins 的缺点

  • 变量来源不明确,不利于阅读
  • 多 mixin 可能会造成命名冲突
  • mixin 和组件可能出现多对多的关系,复杂度较高
目录
相关文章
|
6月前
|
JavaScript
在 Vue 中如何使用mixin 来复用代码?
在 Vue 中如何使用mixin 来复用代码?
29 3
【vue2项目总结】——mixins 复用
【vue2项目总结】——mixins 复用
80 1
|
6月前
|
JavaScript
Vue.js 中父组件调用子组件的方法
Vue.js 中父组件调用子组件的方法
134 2
|
6月前
|
JavaScript 开发者
混入Mixins:如何使用Mixins复用Vue组件逻辑
【4月更文挑战第24天】Vue.js应用的可维护性和可扩展性关键在于逻辑复用。Mixins提供了一种复用代码的高效方式,避免了组件继承导致的复杂性。Mixins是共享Vue组件选项的对象,可在多个组件间使用。创建Mixin后,通过`mixins`选项将其混入组件。当面临命名冲突时,需确保选项唯一或处理合并逻辑。Mixins还可用于条件渲染,帮助分解组件逻辑,提升代码可读性和可维护性。在开发中应根据需求灵活运用Mixins。
33 0
|
6月前
|
JavaScript 前端开发
详解Vue——定义组件的方式
详解Vue——定义组件的方式
43 0
|
6月前
|
JavaScript 前端开发 API
【Vue3】Hooks:一种全新的组件逻辑组织方式
【Vue3】Hooks:一种全新的组件逻辑组织方式
|
6月前
|
设计模式 JavaScript
探索 Vue Mixin 的世界:如何轻松复用代码并提高项目性能(上)
探索 Vue Mixin 的世界:如何轻松复用代码并提高项目性能(上)
探索 Vue Mixin 的世界:如何轻松复用代码并提高项目性能(上)
|
6月前
|
设计模式 JavaScript 前端开发
探索 Vue Mixin 的世界:如何轻松复用代码并提高项目性能(下)
探索 Vue Mixin 的世界:如何轻松复用代码并提高项目性能(下)
|
前端开发
在Vue3工程中封装一个bem规范的hooks
# 引言 好多小伙伴的css命名上比较头疼,今天我们来一起学习一下bem规范,并在Vue3项目中封装个函数用于返回bem规范的命名。 # 什么是bem bem是block element modifier的缩写,b对应block(块),e对应element(元素),m对应modifier(修饰符)。 bem是由Yandex团队提出的一种前端命名**css**的命名规范。 > - -中划线,作为连字符使用,用于某个块或者某个子元素的多单词间的连接记号。 > - __ 双下划线:用于连接块和块之间的子元素。 > - _ 单下划线 :用来描述一个块或者块的子元素的一种状态。 # demo
|
JavaScript 前端开发
Vue3如何封装组件?
Vue3如何封装组件?
331 2
Vue3如何封装组件?