深入浅出之vue-cli混入(mixins)的理解和使用

2018-12-04  本文已影响0人  郝艳峰Vip

个人理解

最近在开发项目过程中,发现了混入(mixins)这个好东西,于是乎就开始研究,发现很不错,不仅可以省好多代码,而且方便维护。----------个人理解的混入就是在一个公共的实例中写入公共的数据或者方法,这样的话vue会自动注入到(全局混入会注入到每一个组件的实例中)(单页面引入的会注入到引入的组件中)。混入的对象也就是minxin中可以写入的内容包含任意组件选项*******(也就是说你在export default {}里边的内容都可以混入)/////////////////////有一种类似公共的方法的感觉,但是可以写公共的data里边的数据,这一点就比较方便了///////////////////////


基础的混入还请参考vue官网--混入
说再多都不如上例子(代码)来的实际。

step一,首先先说一下单页面引入混入

const myMixin = {
    data() {
        return {
            isNoData: false,
            isShowLoding: true
        }
    }
}
export default myMixin;
import MinXin from '@/components/MinXins/index.js'
export default {
  mixins: [MinXin],
}

step二,全局注入混入

const myMixin = {
    data() {
        return {
            isNoData: false,
            isShowLoding: true
        }
    }
}
export default myMixin;

在main.js中全局注册该mixins,特别注意,注意,注意,重要的事情说三遍是Vue.mixin(MinXin);Vue.mixin(MinXin);Vue.mixin(MinXin);不是是Vue.use(MinXin);我就在这上边吃了半天的亏,愣是不知道哪里错了。

import MinXin from '@/components/MinXins/index.js'
Vue.mixin(MinXin);

这样第一种方法,就全局注入到每一个spa实例中了。

Vue.mixin({
    data() {
        return {
            isNoData: false,
            isShowLoding: true,
        }
    }
})

这样第二种方法,就全局注入到每一个spa实例中了。

后续

以下为mixins还可以注入方法的一个例子,引入方法同上,这里就不一 一介绍了,如果对页面传参还有理解不透彻的请移步vue $router 路由传参的4种方法详解

const myMixin = {
    data() {
        return {
            isNoData: false,
            isShowLoding: true
        }
    }
    methods: {
        jumpPage(routerName, Params) {
            if (Params) {
                this.$router.push({ path: routerName, params: Params });
            } else {
                this.$router.push({ path: routerName });
            }
        },
             FromDates(StringDate) {
            let T = "",
                N = "",
                Y = "",
                R = "";
            for (let i = 0; i < StringDate.length; i++) {
                N = StringDate.substring(0, 4) + "-";
                Y = StringDate.substring(4, 6) + "-";
                R = StringDate.substring(6, 8);
                T = N + Y + R;
                return T;
            }
        }
    }
}
export default myMixin;
<template>
    <div @click="jumpPage('your router  path')"></div>
</template>
export default {
   data(){
      return{
         time:this.FromDates('20181203')
    }
   }
}

结束语

mixins的理解和使用就介绍完了,根据自己的理解在项目中运用的还算熟练,又哪里不对的地方还请多多评论指出,大家一块学习进步。

上一篇下一篇

猜你喜欢

热点阅读