资讯专栏INFORMATION COLUMN

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

godiscoder / 2476人阅读

摘要:说一种没人发的,利用混入来实现全局变量和函数。这种方法优点是会有方法变量筛选器提示。一文件进行全局混入一文件,我是把方法变量筛选器这三个分别写到三个文件里面了,方便后期维护。

说一种没人发的,利用混入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",
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/106123.html

相关文章

  • 组件(5):杂项

    摘要:全局混入对象不会覆盖组件中的同名钩子函数将混合为一个数组,因此都将被调用。而钩子函数混入和组件中的不合并,而是都执行,先执行混入中的钩子,再执行组件中的。 组件引用 —— ref、$refs 给子组件或者原始DOM加上ref特性,就可以为其声明引用标记,添加引用后,可以在Javascript中使用vm|this.$refs.refname获取子组件或原始DOM。若是原始DOM,则效果如...

    GeekQiaQia 评论0 收藏0
  • 组件(5):杂项

    摘要:全局混入对象不会覆盖组件中的同名钩子函数将混合为一个数组,因此都将被调用。而钩子函数混入和组件中的不合并,而是都执行,先执行混入中的钩子,再执行组件中的。 组件引用 —— ref、$refs 给子组件或者原始DOM加上ref特性,就可以为其声明引用标记,添加引用后,可以在Javascript中使用vm|this.$refs.refname获取子组件或原始DOM。若是原始DOM,则效果如...

    didikee 评论0 收藏0
  • vue混入

    摘要:定义混入是一种分发组件中可复用功能非常灵活的方式。混入对象的钩子被调用组件钩子被调用值为对象的选项,例如,和,将被混合为同一个对象。全局混入也可以全局注册混入对象。注意使用一旦使用全局混入对象,将会影响到所有之后创建的实例。 定义 混入是一种分发Vue组件中可复用功能非常灵活的方式。混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被混入该组件本身的选项。例子: ...

    vslam 评论0 收藏0
  • 读 VuePress(四)插件机制的设计

    前言 从 9 月份开始,vuepress 源码进行了重新设计和拆分。先是开了个 next 分支,后来又合并到 master 分支,为即将发布的 1.x 版本做准备。 最主要的变化是:大部分的全局功能都被拆分成了插件的形式,以可插拔的方式来支撑 vuepress 的运作,这一点很像 webpack。 具体架构如下: showImg(https://user-gold-cdn.xitu.io/2019...

    April 评论0 收藏0

发表评论

0条评论

godiscoder

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<