功能描述

混入(mixins)定义了一部分可复用的方法或者计算属性。混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被混入该组件本身的选项。

本例实现功能描述

本列子实现了用一个组件导入两个混入对象,并调用了两个混入对象的属性跟方法。

[!TIP|label: 定义mixinOne.js与mixinTwo.js文件]
在src/mixins文件下新建一个mixinOne.js与mixinTwo.js文件,分别添加以下代码

  1. const mixinOne = {
  2. data() {
  3. return {
  4. // 属性1
  5. baidu: "http://www.baidu.com",
  6. // 属性2
  7. taobao: "http://www.taobao.com",
  8. }
  9. },
  10. methods: {
  11. getDataList() {
  12. console.log("--------mixinOneDataList------")
  13. },
  14. testOne() {
  15. console.log("--------mixinOne------")
  16. }
  17. }
  18. }
  19. export {mixinOne}
  1. const mixinTwo = {
  2. data() {
  3. return {
  4. // 属性1
  5. alibaba: "http://www.alibaba.com",
  6. // 属性2
  7. tencent: "http://www.tencent.com",
  8. }
  9. },
  10. methods: {
  11. getDataList() {
  12. console.log("--------mixinTwoDataList------")
  13. },
  14. testTow() {
  15. console.log("--------mixinTwo------")
  16. }
  17. }
  18. }
  19. export {mixinTwo}

[!TIP|label: 定义homeInfo.vue]
我们以基础框架为基础,在src/views/basic/sys文件夹下新建一个homeInfo.vue文件并配置到菜单,
配置菜单的具体方法见vue方式开发指南-部署与启动里面的菜单路由配置
在src/views/basic/sys的homeInfo.vue里面添加一下代码

  1. <template>
  2. <div>
  3. <button @click="consoleData()">打印属性</button>
  4. <button @click="getDataList()">getDataList会打印</button>
  5. <button @click="testOne()">mixinOne的方法testOne</button>
  6. <button @click="testTow()">mixinTwo的方法testTow</button>
  7. </div>
  8. </template>
  9. <script>
  10. import {mixinOne} from '@/mixins/mixinOne'
  11. import {mixinTwo} from '@/mixins/mixinTwo'
  12. export default {
  13. name: 'HomeVueInfo',
  14. data() {
  15. return {
  16. }
  17. },
  18. mixins: [mixinOne,mixinTwo],
  19. methods: {
  20. getDataList() {
  21. console.log("欢迎来到vue")
  22. },
  23. consoleData() {
  24. console.log(this.$data)
  25. }
  26. }
  27. }
  28. </script>

[!TIP]
点击界面按钮可以看到混淆添加已经添加并成功触发,如图所示:

- mixins的使用以及案列 - 图1