资讯专栏INFORMATION COLUMN

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

godiscoder / 2312人阅读

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

说一种没人发的,利用混入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
  • Vue-Router路由模式和install过程

    摘要:先回忆一下的使用的四步曲,使用插件实例化路由模式实例化实例时使用该路由通过或进行路由跳转接下来,就逐次窥探上面四步曲中具体的一些实现细节。   单页应用(SPA, Single Page Application)的整个Web系统由一个html文件,通过Ajax和后端进行数据交互,通过一些特殊手段去加载渲染页面的不同部分,使得无需刷新整体页面,,就像使用app一样,极大的提升了用户使用体...

    hiyayiji 评论0 收藏0

发表评论

0条评论

godiscoder

|高级讲师

TA的文章

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