vue中混入(mixins)在项目中的应用

国瑞前端:在vue文档中,有关于混入的介绍,哪里有关于混入的使用呢,接下来我们一起了解下关于混入的使用 vue中混入(mixins)在项目中的应用 vue文档中关于混入(mixin…

国瑞前端:在vue文档中,有关于混入的介绍,哪里有关于混入的使用呢,接下来我们一起了解下关于混入的使用

vue中混入(mixins)在项目中的应用

vue文档中关于混入(mixins)的介绍:
https://cn.vuejs.org/v2/guide/mixins.html

混入的使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>

<body>
  <div id="app">


    <Model></Model>

  </div>
</body>

</html>

<script src="https:/www.huanggr.cn/vue/2.5.15/vue.min.js"></script>
<script>
  // 定义一个混入对象
  var myMixin = {
    created() {
      console.log('混入先执行')
      //执行列表渲染
      console.log('渲染列表开始')
      console.log(data)
    },
    methods: {
      ok() {
        console.log('混入点击成功')
      },
      getList(list) {
        //获取列表
        console.log(data.list)

      },
      getPageSize(page) {
        console.log('---------哈哈,你使用了分页')
        console.log(PageSize)
        this.flag = true //
      }
    },
    data() {
      return {
        flag: false
      }
    }

  }

  /* 此处为模拟数据 */
  let data = {
    list: [{
      id: 1,
      name: '张三'
    }, {
      id: 2,
      name: '张三'
    }, {
      id: 3,
      name: '张三'
    }, {
      id: 4,
      name: '张三'
    }, ]

  }
  let PageSize = {
    'page': 1,
    'size': 10
  }

  /* 此处为模拟数据 */

  //全局组件
  Vue.component('Model', {
    mixins: [myMixin],
    props: [],
    template: `
    <span @click="ok">
      混入的使用
    <p v-show="flag">当前为第{{page.page}}页,一共有{{page.size}}页  </p>
    </span>
   
`,
    data() {
      return {
        page: PageSize
      }
    },
    methods: {
      ok() {
        console.log('点击成功')
      }
    },
    created() {
      console.log('组件后执行')
      //是否使用分页,调用就是使用
      this.getPageSize()
    }
  })


  let app = new Vue({
    el: "#app",
    data: {

    },
    methods: {

    }

  })
</script>

这里我们发现有两个”ok” 函数,一个在混入中,一个在组件中,这个时候vue会优先调用在组件中的函数,那么混入有什么作用呢,优点如下:

1、因为混入执行在组件之前,所以可以在混入中调用分页,也可以将查询方法,删除方法等将写在里面,简化代码

作者: huanggr

为您推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注