Как создать глобальные функции в Vue.js? - PullRequest
0 голосов
/ 01 февраля 2019

Я хотел бы использовать некоторые функции глобально в моем приложении.
Большинство ответов на мой вопрос относятся к Vue Mixin.Хотя я использую его, он не может решить мою проблему.Это моя попытка

Vue.mixin({
    methods:{
        gFun(){
            console.log("Works");
        },
    }
})

const app = new Vue({
    el: '#app',
    data: {

    },
    created(){
        gFun();
    },
    methods: {

    }
});

Vue говорит: "ReferenceError: testMixin не определен".
Я хочу просто использовать gFun () глобально (без использования like this.gFun () ).Пожалуйста, объясните мне что-нибудь.
Использование Vue Mixin или нет - это нормально.

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

Вы можете объявить свою глобальную функцию как function functon_name(parameters){...}, попробуйте передать экземпляр vue как параметр, чтобы получить доступ к его свойствам внутри глобальной функции следующим образом

Vue.config.devtools = false;
Vue.config.productionTip = false;

window.gFun = function(vm) {
  console.log(vm.message);
}


const app = new Vue({
  el: '#app',
  data: {
    message: "Hello !"
  },
  created() {
    gFun(this);
  },
  methods: {

  }
})
<link type="text/css" rel="stylesheet" href="//unpkg.com/bootstrap/dist/css/bootstrap.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.16/vue.js"></script>


<div id="app" class="container">

</div>
0 голосов
/ 01 февраля 2019

Это не проблема с Vue.

Вы можете создавать глобальные функции в javascript, используя что-то вроде:

window.gFun = window.gFun || () => console.log("Works");
...