// @/mixin/MyMixin.js
// 모듈이 여러개일 경우 이름으로 구분을 지어야함
let MyMixin = {
mounted() {
console.log('Mixed!')
}
}
const toggle = {
data() {
return {
isShowing: false
}
},
methods: {
toggleShow() {
this.isShowing = !this.isShowing;
}
}
}
const Modal = {
template: '#modal',
mixins: [toggle], // 이런식으로 mixin 안에서도 서로 mixin 가능
components: {
appChild: Child
}
};
export default MyMixin // mixin 부를떄 기본적으로 사용할 것들 넣어주기, 공통적으로 사용하는 부분이 없으면 없어도 됨
// 하나일 경우 이런식으로 해도 됨
export default {
mounted() {
console.log('Mixed!')
}
}
// @/component. js
import MyMixin from '@/mixins/MyMixin'
export default {
mixins: [MyMixin] // mixin"s" 입니다! s에 주의하세요!
// 에러메세지 출력 없이 동작하지 않습니다.
}
// mixin 에 모듈이 여러개일 경우
import { toggle } from './mixins/toggle' // mixin 안에서 선택적으로 불러오기
export default {
name: 'test',
mixins: [toggle],
}
App.vue
에서 모든 vue에서 사용하는 함수를 plug-in처럼 추가할 수 있음.Vue.mixin({
mounted() {
console.log('hello from mixin!')
}
})