Javascript 如何重用方法:在主对象中定义并从VueJS中的所有组件调用

Javascript 如何重用方法:在主对象中定义并从VueJS中的所有组件调用,javascript,vue-component,vue.js,vuejs2,Javascript,Vue Component,Vue.js,Vuejs2,我将父子组件用于VUEJ。我目前必须为多个组件分别定义一个方法 但是,我只想在一个地方定义它,并在多个地方使用它 我的父模板是 <campaign_segment :a=add(1,2)> </campaign_segment> 在这里,我应该将方法“add()”定义到我的主vuejs对象中 否则,我会收到错误消息“未定义添加方法” 对于单个声明和来自组件的触发器,是否有任何解决方案 这是如何实现的,或者其他解决方案是如何实现的?您正在寻找的功能在vue JS中调用 m

我将父子组件用于VUEJ。我目前必须为多个组件分别定义一个方法

但是,我只想在一个地方定义它,并在多个地方使用它

我的父模板是

<campaign_segment :a=add(1,2)> </campaign_segment>
在这里,我应该将方法“add()”定义到我的主vuejs对象中

否则,我会收到错误消息“未定义添加方法”

对于单个声明和来自组件的触发器,是否有任何解决方案


这是如何实现的,或者其他解决方案是如何实现的?

您正在寻找的功能在vue JS中调用

mixin是为Vue组件分发可重用功能的一种灵活方式。mixin对象可以包含任何组件选项。当组件使用mixin时,mixin中的所有选项都将“混合”到组件自己的选项中

因此,您可以在mixin中添加一个方法,它将在mixin将被混合的所有组件中可用。请参见以下示例:

// define a mixin object
var myMixin = {
  methods: {
       add: function(a,b){
          return parseInt(a) + parseInt(b);
       }
  }
}

// define a component that uses this mixin
var Component = Vue.extend({
  mixins: [myMixin]
})

// alternate way to have a mixin while initialising
new Vue({
  mixins: [myMixin],
  created: function () {
    console.log('other code')
  }
})
   Vue.component(
   'campaign_segment', {
     template: '#segment_body',
     props: ['a'],
     methods:{
       add: function(a,b){
          return parseInt(a) + parseInt(b);
       }
     }
  });
// define a mixin object
var myMixin = {
  methods: {
       add: function(a,b){
          return parseInt(a) + parseInt(b);
       }
  }
}

// define a component that uses this mixin
var Component = Vue.extend({
  mixins: [myMixin]
})

// alternate way to have a mixin while initialising
new Vue({
  mixins: [myMixin],
  created: function () {
    console.log('other code')
  }
})