文章

关于vue的mixin

关于vue的mixin

vue的mixin

当有多个组件写了多个同样的语句时,可以使用vue的mixin机制 创建一个utils/mixin.js文件,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
import {
  mapGetters,
  mapActions
} from 'vuex'

export const bookMixin = {
  computed: {
    ...mapGetters(['bookName', 'bookCover']),
  },
  methods: {
    ...mapActions(['setBookName', 'setBookCover'])
  }
}

接下来就可以在组件内这样写:

1
2
3
import { bookMixin } from 'utils/mixin'
  mixins:[bookMixin]
  methods: {}

这样可以将vuex的内容在一处增加,多处复用。

mapActions是写到methods里的,这样就可以替换这种写法

1
2
3
4
// 原来写法
this.$store.dispatch('setBookName',this.bookName)
// 优雅写法
this.setBookName(this.bookName)
本文由作者按照 CC BY 4.0 进行授权