Vue、Nuxtを使用しており、vue、storeファイルの両方から利用できる共通関数の作り方について、悩んでおります。
冗長化にならない作成方法について、ご助言いただけないでしょうか?
- ミックスインとして、共通関数を下記のように作成した場合、Vueファイルでは、test1、test2を指定すれば使用することができるが、storeファイル内で、test1を使用したい場合、使うことができません。
/plugin/mixinFunction.js
※nuxt.config.jsにpluginの設定をおこなうこととする
import Vue from 'vue' Vue.mixin({ methods: { test1(targetObj) { return xxx }, test2(targetObj) { return xxx } } })
- そのため、下記を作成してみましたが、storeファイルでは、利用することができましたが、Vueファイル内では、使用することができませんでした。
/plugin/util.js
export const utilFunctions = { test1(targetObj) { return xxx }, test2(targetObj) { return xxx } }
XXX.vue
import { utilFunctions } from '@/plugin/util'
- 「utilFunctions.test1」といった指定ができないです
ご回答いただき、下記のようにすることで、storeから利用できるようになりましたが、gettersの中では、this参照できないです。何か別に設定など必要であるかご存知でしょうか?
/plugin/test.js
const test = aaa => { console.log(aaa) } export default ({ app }, inject) => { inject('test', test) }
storeファイル
- gettersではエラー
export const getters = { getTest: state => { this.$test('テストプラグイン') } }
- actionsでは、OK
export const actions = { actionsTest({ commit, state }) { this.$test('テストプラグイン') } }
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/03 09:13
2019/10/03 09:38
2019/10/03 10:01
2019/10/03 10:17
2019/10/03 10:30