• Vue 全局挂载自定义函数


    使用vue 时,有时需要设置公共的函数,便于在所有组件中调用或者在组件的生命周期中都可调用,这便需要自定义全局函数。以下介绍一些全局函数的定义方式。

    一、所有组件可调用

    1、方法一:Vue.prototype

    在mian.js中写入函数

    Vue.prototype.getToken = function (){
      ...
    }
    

    在所有组件里可调用函数

    this.getToken();
    
    2、方法二:exports.install+Vue.prototype

    写好自己需要的公共JS文件(fun.js)

    exports.install = function (Vue, options) {
        Vue.prototype.getToken = function (){
           ...
        };
    };
    

    main.js 引入并使用

    import fun from './fun'   // 路径示公共JS位置决定
    Vue.use(fun);
    

    所有组件里可调用函数

    this.getToken();
    

    可能遇到的问题:在用了exports.install方法时,运行报错exports is not defined
    解决方法:

    export default {
        install(Vue)  {
            Vue.prototype.getToken = {
               ...
            }
        }
    }
    
    3、方法三:在utils下创建function.js 并导出挂载到Vue原型
    # function.js
    class Func {
        /**
         * 存储Storage
         */
        setStorage(name, content, type = "local") {
          if (!name) return;
          let storage;
          //必须判断是否字符串
          if (typeof content !== "string") {
            content = JSON.stringify(content);
          }
          type === "local"
            ? (storage = window.localStorage)
            : (storage = window.sessionStorage);
          storage.setItem(name, content);
        }
    }
    export default new Func();
    
    # utils/index.js
    import Vue from "vue";
    import myService from "./request";
    import Func from "./function";
    
    Vue.prototype = Object.assign(Vue.prototype, {
      $axios: myService,
      $F: Func,
    });
    
    //使用
    this.$F.setStorage()
    
  • 相关阅读:
    DataTable的一些使用技巧
    Linux下使用Mysql
    【Cocos2d-X开发学习笔记】第28期:游戏中音乐和音效的使用
    HDU 4669 Mutiples on a circle (DP , 统计)
    面试经典-设计包含min函数的栈
    最大熵模型
    这篇文章关于两阶段提交和Paxos讲的很好
    【读书笔记】神经网络与深度学习
    这个对协程的分析不错
    sendfile学习
  • 原文地址:https://www.cnblogs.com/cjh1996/p/12689631.html
Copyright © 2020-2023  润新知