zoukankan      html  css  js  c++  java
  • 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()
    
  • 相关阅读:
    79月知识小结
    将网页上word、pdf、txt文件下载下来,解析成文本内容
    vs 配色方案
    sql时间函数
    关于全角转半角的方法
    多线程与UI操作
    委托调用、子线程程调用、与线程池调用
    算法插入排序
    字符串在某字段里时,如何写搜索的SQL语句
    理解constructor属性
  • 原文地址:https://www.cnblogs.com/cjh1996/p/12689631.html
Copyright © 2011-2022 走看看