在vue 2中,重用vue方法的正确做法是什么?

与其把它们写在每个组件中,不如说什么是使它们全球化的最佳方式?

推荐答案

混合

你可以为它创建一个mixin

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

例子:

// define a mixin object
var my混合 = {
  created: function () {
    this.hello()
  },
  methods: {
    hello: function () {
      console.log('hello from mixin!')
    }
  }
}
// define a component that uses this mixin
var Component = Vue.extend({
  mixins: [my混合]
})
var component = new Component() // -> "hello from mixin!"

如果不想在所有成分中手动混合,可以使用global mixin

// inject a handler for `myOption` custom option
Vue.mixin({
  created: function () {
    var myOption = this.$options.myOption
    if (myOption) {
      console.log(myOption)
    }
  }
})

插件

创建全局可用方法的另一种方法是创建plugin.

My插件.install = function (Vue, options) {
  //  add global method or property
  Vue.myGlobalMethod = function () {
    // something logic ...
  }
  //  inject some component options
  Vue.mixin({
    created: function () {
      // something logic ...
    }
    ...
  })
  //  add an instance method
  Vue.prototype.$myMethod = function (options) {
    // something logic ...
  }
}

通过调用Vue.use()全局方法使用插件:

Vue.use(My插件)

现在,这些方法将随处可见.你可以看到这个here的例子.

Vue.js相关问答推荐

在VITE-VUE APP-DEV模式上重定向HTTP请求

vue3 输入标签给出错误 Vue.use 不是函数

如何在 vue2.7 中删除 slot-scope

在 Vue 中启用(控制台)记录路由事件

实现登录命令并访问 vuex 存储

如何使用 v-on:change 将输入文本传递给我的 vue 方法?

使用 Vue Js 运行 Jest 测试时出现语法错误:无法在模块外使用 import 语句

如何在 vue.js 构建中重命名 index.html?

vuejs中watch方法和计算方法有什么区别

在 v-for 的情况下如何从 v-model 输入更新 Vuex 存储

Vuejs 2,VUEX,编辑数据时的数据绑定

vuex: unknown getter: user

全局禁用 vuetify 组件的涟漪效应

Nuxt 应用程序在刷新动态路由时返回 404(Tomcat 服务器)

vue 在 v-model 之后执行 @click

在 .vue 文件中使用 Vue.set() 和 Vue.use()

使用 Vue.js 获取所有选中复选框的列表

使用 Vue 的点击编辑文本字段

在 Vuejs 中全局导入 Axios 方法

隐藏特定标题及其在 vuetify 数据表中的对应列