#javascript #vue.js
#javascript #vue.js
Вопрос:
В моем приложении у меня есть много служебных функций, которые выполняют небольшие действия, от синтаксического анализа строк до приготовления тостов и так далее. Мой вопрос в том, как мне получить к ним доступ в других .vue
файлах? Я не хочу переписывать эти функции для каждого нового компонента Vue, который я пишу. Смогу ли я использовать их, импортируя один компонент в другой? (Vue жалуется, если я не добавляю компонент в шаблон другого, что означает, что я не могу просто импортировать этот JavaScript). Если да, то это хорошая / разумная вещь? Каков стандартный способ сделать это?
Ответ №1:
Mixins — это концепция, которую вы можете попробовать.
- импортируйте компонент, который вам нужен.
- добавьте массив mixin, как показано ниже, в свой компонент прямо над разделом данных (или везде, где это возможно)
mixins:[yourimportedcomponent], данные:….
- Вызовите нужный метод, используя this.theMethodYouWant();
Больше вы можете найти здесь https://v2.vuejs.org/v2/guide/mixins.html
Ответ №2:
Вы могли бы создать плагин, который предоставляет функции Vue
. Документация по плагинам
// group utils functions together
Vue.prototype.$utils = {
funcA: function () { ... },
funcB: function () { ... }
}
или
Переместите их все в модуль common utilities src/utils.js
, затем каждый компонент Vue может импортировать по мере необходимости:
// src/utils.js
const funcA = () => {
console.log('funcA');
}
const funcB = () => {
console.log('funcB');
}
export { funcA, funcB }
// VueComponentA.vue
import { funcA } from 'path/to/utils';
// VueComponentB.vue
import { funcB } from 'path/to/utils';