问题描述
我试图在 Laravel Inertia 项目上通过 Vue mixin 创建一个全局辅助函数,但无济于事:
//app.js
Vue.mixin({
methods: {
myFunction() {
return 'Returnign from myFunction';
},},});
new Vue({
...
}).$mount(app);
.
//MyComponent.vue
console.log(myFunction()); // ReferenceError: myFunction is not defined
在一个独立的 Vue.JS 项目中,这是可行的。也许 Inertia 的幕后有什么东西阻止了 mixin 加载。有人能帮我理解为什么会这样吗?
谢谢。
解决方法
您的函数需要 ()
Vue.mixin({
methods: {
myFunction() {
return 'Returnign from myFunction';
},},});
然后你在 mixin 函数之前错过了 this
console.log(this.myFunction());