Laravel Inertia 中的 Vue 混合

问题描述

我试图在 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());