<commit_before>---
title: Плагины
type: guide
order: 18
---

## Создание плагина

Плагины обычно добавляют во Vue некоторый глобальный функционал. В явном виде область применения плагинов не определена. Вы можете создавать плагины нескольких различных типов:

1. Добавляющие глобальные методы и/или свойства, например [vue-element](https://github.com/vuejs/vue-element)

2. Добавляющие глобальные объекты: директивы/фильтры/переходы и т.д., например [vue-touch](https://github.com/vuejs/vue-touch)

3. Добавляющие опции компонентов посредством глобальной примеси, например [Vuex](https://github.com/vuejs/vuex)

4. Добавляющие методы инстанса Vue через Vue.prototype.

5. Библиотеки, предоставляющие собственные API, комбинируя вышеперечисленные возможности, например [Vue-router](https://github.com/vuejs/vue-router)

Плагин Vue.js должен содержать метод `install`. Метод будет вызван с конструктором `Vue` в качестве первого аргумента, и, возможно, с дополнительными опциями:

``` js
MyPlugin.install = function (Vue, options) {
  // 1. добавление глобального метода или свойства
  Vue.myGlobalMethod = function () {
    // некоторая логика ...
  }

  // 2. добавление глобального объекта
  Vue.directive('my-directive', {
    bind (el, binding, vnode, oldVnode) {
      // некоторая логика ...
    }
    ...
  })

  // 3. добавление опций компонентов
  Vue.mixin({
    created: function () {
      // некоторая логика ...
    }
    ...
  })

  // 4. добавление метода инстанса
  Vue.prototype.$myMethod = function (options) {
    // некоторая логика ...
  }
}
```

## Использование плагинов

Для использования плагина нужно вызвать глобальный метод `Vue.use()`:

``` js
// вызывает `MyPlugin.install(Vue)`<commit_msg>- plugins.md инстанс -> экземпляр<commit_after>---
title: Плагины
type: guide
order: 18
---

## Создание плагина

Плагины обычно добавляют во Vue некоторый глобальный функционал. В явном виде область применения плагинов не определена. Вы можете создавать плагины нескольких различных типов:

1. Добавляющие глобальные методы и/или свойства, например [vue-element](https://github.com/vuejs/vue-element)

2. Добавляющие глобальные объекты: директивы/фильтры/переходы и т.д., например [vue-touch](https://github.com/vuejs/vue-touch)

3. Добавляющие опции компонентов посредством глобальной примеси, например [Vuex](https://github.com/vuejs/vuex)

4. Добавляющие методы экземпляра Vue через Vue.prototype.

5. Библиотеки, предоставляющие собственные API, комбинируя вышеперечисленные возможности, например [Vue-router](https://github.com/vuejs/vue-router)

Плагин Vue.js должен содержать метод `install`. Метод будет вызван с конструктором `Vue` в качестве первого аргумента, и, возможно, с дополнительными опциями:

``` js
MyPlugin.install = function (Vue, options) {
  // 1. добавление глобального метода или свойства
  Vue.myGlobalMethod = function () {
    // некоторая логика ...
  }

  // 2. добавление глобального объекта
  Vue.directive('my-directive', {
    bind (el, binding, vnode, oldVnode) {
      // некоторая логика ...
    }
    ...
  })

  // 3. добавление опций компонентов
  Vue.mixin({
    created: function () {
      // некоторая логика ...
    }
    ...
  })

  // 4. добавление метода экземпляра
  Vue.prototype.$myMethod = function (options) {
    // некоторая логика ...
  }
}
```

## Использование плагинов

Для использования плагина нужно вызвать глобальный метод `Vue.use()`:

``` js
// вызывает `MyPlugin.install(Vue)`
{'fraction_non_alphanumeric': 0.11720554272517321, 'fraction_numerical': 0.006351039260969977, 'mean_word_length': 3.6077127659574466, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 4, 'https://': 8, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2064433', 'n_tokens_mistral': 1416, 'n_tokens_neox': 1618, 'n_words': 310}