vue如何让自定义函数挂到全局

公司打算用VUE,写一个活动模块;小白求解决。

情况如下:
入口:main.js
公用:fun.js

模板:

 App.vue  入口
 list.vue 列表
 show.vue 详细
 

在fun.js中:

function init(){...} //初始化
function ajax(){...} //通用ajax发起
function MsgBox(){...} //错误提示
function MakeToken(){...} //生成token

在main.js中, require('./fun.js'); 可执行fun.js;
但当通过vue-router 跳转到 list.vue后 (没有在list.vue中引入fun.js)无法使用fun.js,知道是作用域的问题....

问题:在vue下怎么把fun.js下的方法挂到全局,难道要每个vue都require一次?

阅读 56.2k
4 个回答

在main.js里进行全局注册

Vue.prototype.ajax = function (){}

在所有组件里可调用

this.ajax
// xxx.js 组件
exports.install = function (Vue, options) {
    Vue.prototype.ajax = function (){
        alert('aaaaaaa');
    };
};
// main.js 入口
import xxxx from './commons/xxxx'
Vue.use(xxxx);
// ccc.js 子组件
this.ajax();
新手上路,请多包涵

Vue.prototype.ajax = function (){

    这里用json.stringify()会提示Uncaught ReferenceError: exports is not defined
};

请问有解决方法吗?

你们回答的都是 某一个函数挂载到全局如果是多个呢?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏