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()
    
  • 相关阅读:
    linux之用户和用户组管理详解
    linux权限管理
    flink 1.7.2 安装详解
    TJI读书笔记13-内部类
    TJI读书笔记12-接口
    TJI读书笔记11-多态
    TJI读书笔记10-复用类
    TJI读书笔记09-访问控制权限
    TIJ读书笔记08-数组的初始化和可变长参数形参
    TJI读书笔记07-初始化
  • 原文地址:https://www.cnblogs.com/cjh1996/p/12689631.html
Copyright © 2011-2022 走看看