如何调用我的Vue.js插件中声明的函数

时间:2019-02-11 15:28:55

标签: vue.js plugins

我编写了一个Vue.js插件来全局访问Vue函数:

//= require admin/benefits

并将其包含在main.js文件中:

const MyPlugin = {
  install (Vue, options) {
    Vue.myFunction = function () {     
      console.log('Test')
    }
  }
}
export default { MyPlugin }

但是,当我尝试从这样的Vue组件调用myFunction时:

import MyPlugin from './plugins/my-plugin.js'
Vue.use(MyPlugin)

它给我下面的错误:

  

属性或方法“ myFunction”未在实例上定义,但   在渲染期间引用。确保此属性是反应性的,   在data选项中或对于基于类的组件,通过   初始化属性

在vue组件中访问“ myFunction”需要做什么?

1 个答案:

答案 0 :(得分:2)

如果您尝试从模板访问全局方法,则该方法必须在Vue组件的实例上可用。因此,您需要在searchResult.getData.get(i).get(0).item_type 对象上设置myFunction函数:

Vue.prototype

See the docs on writing plugins.


正如您在文档中所看到的,将install (Vue, options) { Vue.prototype.myFunction = function () { console.log('Test') } } 放在这些类型的全局函数上是一种常见的约定,以便更轻松地将它们与Vue实例上的其他方法区分开。因此,根据您的情况,最好将该函数设置为$