我应该把两个或多个 Vue.js 组件使用的函数放在哪里?

波丸

我有一个函数,它接受一个 ID 作为参数,并从存储在 Vuex 存储中的 JSON 中找到该 ID 所属的对象。到目前为止,我只在 1 个组件中使用了该函数,但是,我最近创建了第二个组件,它也需要该函数。目前我刚刚复制并粘贴了该功能,但是,这似乎不是最佳选择。这就是为什么我想知道这个函数应该放在哪里,以便所有需要它的组件都可以访问它。

我一直想知道 Vuex 商店是否是存储该函数的可行地方,但我不太确定,所以我决定征求您的意见。谢谢

findChampionName(id){
    let championId = id.toString();
    let champion = Object.entries(this.$store.state.champions).find(([key,value]) => value.key === championId);

    return champion[1]
}

Vuex 商店:

export default new Vuex.Store({
    state: {
        champions: null
    },
    mutations: {
        champions(state, data){
            state.champions = data.champions
        }
    },
    actions: {
        getChampions({commit, state}){
            axios.get("https://ddragon.leagueoflegends.com/cdn/9.14.1/data/en_US/champion.json")
            .then((response) => {
                commit('champions', {
                    champions: response.data.data
                })
            })
            .catch(function (error) {
                console.log(error);
            })
        }
    }
})
角色角色

据我所知,您应该为您的案例使用 vuex getter:

getters: {
    getChampionName => state => id => {
        let championId = id.toString();
        let champion = Object.entries(state.champions).find(([key,value]) => value.key === championId);

        return champion[1]
    }
}

您可以通过传递 id 来访问该 getter: this.$store.getters['findChampionName'](id)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法在 vue js 中使用两个组件

来自分类Dev

Vue 2.0,本地函数放在哪里

来自分类Dev

Angular JS-我的代码应该放在哪里?

来自分类Dev

在哪里可以检查Vue.js生成的渲染函数?

来自分类Dev

Laravel 和 Vue:将 js/app.js 放在哪里?

来自分类Dev

我在函数中将$(this)放在哪里?

来自分类Dev

我的辅助函数放在哪里?

来自分类Dev

Vue.js-同一路线上的两个不同组件

来自分类Dev

我应该将Meteor.startup中使用的函数的代码放在哪里?

来自分类Dev

Vue.js 3-如何在Vue组件之间传递数据并同时更新两个视图?

来自分类Dev

在vue js的两个v-for循环内运行函数

来自分类Dev

如何使用Vue.js设置两个依赖项下拉列表

来自分类Dev

应该在哪里加载 vue.js 脚本?

来自分类Dev

Vue JS-渲染组件的多个实例

来自分类Dev

在 Vue 项目中,我在哪里添加我的 .eslintrc.js 文件?

来自分类Dev

Vue/Vuex - 两个或多个具有异步调度的组件(ajax)

来自分类Dev

我应该在JS导入(Vue.js / Nuxt.js)中使用@还是〜?

来自分类Dev

注册一个 Vue JS 组件

来自分类Dev

在另一个 vue 组件中使用 Vue JS 组件方法

来自分类Dev

Vue.js:将两个输入彼此绑定

来自分类Dev

Vue.js-使用组件

来自分类Dev

Vue Js-在单个Vue组件中的多个js文件中拆分method.js

来自分类Dev

我在哪里将setTimeout放在jQuery函数中?

来自分类Dev

我应该将Node JS应用放在哪里,以便可以通过主网站进行访问?

来自分类Dev

我应该把React组件的初始化代码放在哪里?

来自分类Dev

Vue.js-在组件方法中使用函数

来自分类Dev

如何使用v-for(Vue.js)循环JSON对象并将渲染的DOM拆分为两个div容器?

来自分类Dev

我应该在哪里定义JS函数以在EJS模板中调用

来自分类Dev

我的JavaScript应该在哪里使用View组件?

Related 相关文章

  1. 1

    无法在 vue js 中使用两个组件

  2. 2

    Vue 2.0,本地函数放在哪里

  3. 3

    Angular JS-我的代码应该放在哪里?

  4. 4

    在哪里可以检查Vue.js生成的渲染函数?

  5. 5

    Laravel 和 Vue:将 js/app.js 放在哪里?

  6. 6

    我在函数中将$(this)放在哪里?

  7. 7

    我的辅助函数放在哪里?

  8. 8

    Vue.js-同一路线上的两个不同组件

  9. 9

    我应该将Meteor.startup中使用的函数的代码放在哪里?

  10. 10

    Vue.js 3-如何在Vue组件之间传递数据并同时更新两个视图?

  11. 11

    在vue js的两个v-for循环内运行函数

  12. 12

    如何使用Vue.js设置两个依赖项下拉列表

  13. 13

    应该在哪里加载 vue.js 脚本?

  14. 14

    Vue JS-渲染组件的多个实例

  15. 15

    在 Vue 项目中,我在哪里添加我的 .eslintrc.js 文件?

  16. 16

    Vue/Vuex - 两个或多个具有异步调度的组件(ajax)

  17. 17

    我应该在JS导入(Vue.js / Nuxt.js)中使用@还是〜?

  18. 18

    注册一个 Vue JS 组件

  19. 19

    在另一个 vue 组件中使用 Vue JS 组件方法

  20. 20

    Vue.js:将两个输入彼此绑定

  21. 21

    Vue.js-使用组件

  22. 22

    Vue Js-在单个Vue组件中的多个js文件中拆分method.js

  23. 23

    我在哪里将setTimeout放在jQuery函数中?

  24. 24

    我应该将Node JS应用放在哪里,以便可以通过主网站进行访问?

  25. 25

    我应该把React组件的初始化代码放在哪里?

  26. 26

    Vue.js-在组件方法中使用函数

  27. 27

    如何使用v-for(Vue.js)循环JSON对象并将渲染的DOM拆分为两个div容器?

  28. 28

    我应该在哪里定义JS函数以在EJS模板中调用

  29. 29

    我的JavaScript应该在哪里使用View组件?

热门标签

归档