vue中 利用混入定义全局变量、函数、筛选器

说一种没人发的,利用混入mixins来实现全局变量和函数。mixins里面的方法、变量、筛选器会和组件里面的方法、变量、筛选器合并。这种方法优点是ide会有方法、变量、筛选器提示。

一、main.js文件

import Vue from 'vue'

import App from './App'

import router from './router'

import store from './store'

import mixin from './utils/mixin'

Vue.prototype.$bus = new Vue()

//进行全局混入

Vue.mixin(mixin)

new Vue({

    store,

    router,

    render: h => h(App),

}).$mount('#app')

一、mixin.js文件,我是把方法、变量、筛选器这三个分别写到三个js文件里面了,方便后期维护。也可以直接写到mixins文件里面

import filters from './filters'

import globalMethods from './global-methods'

import Config from '../config'

import CONSTANT from './const_var'

// 全局混入

export default {

    data() {

        return {

            CONFIG: Config,

            CONSTANT,

        }

    },

    methods: {

        // //将globalMethods文件里面的方法挂载到vue上,以方便调用,直接this.$xxx方法名就可以了

        // Object.keys(globalMethods).forEach(key => {

        //    Vue.prototype[key] = tools[key]

        // })

        // 将globalMethods里面的方法用对象展开符混入到mixin上,以方便调用,直接this.$xxx方法名就可以了

        ...globalMethods,

    },

    filters: {

        // //将filter里面的方法添加了vue的筛选器上

        // Object.keys(filters).forEach(key => {

        //    Vue.filter(key, filters[key])

        // })

        ...filters,

    },

}

filters.js文件

export default {

    // 时间转换器

    date(v) {

      ...

    },

    // 处理身份证信息,中间隐藏掉

    processIdNumber(v) {

        ...

    },

}

global-methods.js文件

import { Message, MessageBox } from 'element-ui'

export default {

    $success(msg) {

    ...

    },

    $warning(msg) {

      ...

    },

    $error(msg) {

    ...

    },

    $checkPlatform() {

      ...

    },

    // 倒计时时间格式化

    $countdownFormatTime(timeStamp) {

      ...

    },

}

constant_var.js文件

export default {

    REDIRECT: 'redirect',


    // 请求方法

    POST: 'post',

    GET: 'get',

    PATCH: 'patch',

    DELETE: 'delete',

    PUT: 'put',


    // 静态常量

    PICKEROPTIONS: {

        ...

    },

    PAGENUMBER: 1,

    PAGESIZE: 10,

    DELAYTIME: 250,

    SUCCESS: '000000',

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容