Vuex 的状态管理 ——Getter

阅读时长 4 分钟读完

Vuex 是 Vue.js 应用程序开发的状态管理模式。它充分利用了 Vue.js 的模块化机制,将应用程序中的所有组件状态集中处理,简化了应用程序的复杂度。Vuex 最重要的特性之一就是它提供了一个全局的状态管理器,开发者可以在应用程序的任何地方获取和管理应用程序的状态。

Getter

在Vuex中,Getter是一个函数,用于从存储器中获取状态。Getter可以避免组件之间直接访问状态,并提供了一种向其他组件公开状态的方法。Getter是只读属性,也就是说它不能被修改-只能被读取。

Getter的主要作用是用来将存储器中的原始状态进行过滤、计算、映射,得到我们需要的状态值。 可以将 Getter 封装成一个属性, 然后在其他组件中直接通过调用该属性来获取值, 而无需手写复杂的过滤、计算、转换逻辑。

以下是一个如何在Vuex中定义和使用Getter的示例代码:

-- -------------------- ---- -------
------ --- ---- ------
------ ---- ---- -------

--------------

----- ----- - --- ------------
    ------ -
        ------ --
        ------ -
            - --- -- ----- -------- ------ --- --------- - --
            - --- -- ----- --------- ------ --- --------- - --
            - --- -- ----- --------- ------ --- --------- - -
        -
    --
    -------- -
        --------- ----- -- -
            ------ ------------
        --
        --------- ----- -- -
            ------ ------------
        --
        --------- ----- -- -
            ------ -------------------------- ----- -- -
                ------ ----- - ---------- - --------------
            -- ---
        --
        ------------ ------- -- ---- -- -
            ------ --------------------- -- ------- --- ----
        -
    -
---

------------------------------------ ---

------------------------------------ ---- --- -- ----- -------- ------ --- --------- - --- --- -- ----- --------- ------ --- --------- - --- --- -- ----- --------- ------ --- --------- - --

------------------------------------ -----

------------------------------------------ --- --- -- ----- -------- ------ --- --------- - -

在上面的代码中,我们将需要过滤、计算或映射的状态集中在getters对象中。我们定义了四个Getter:

  • getCount是用来获取存储器中的count状态;

  • getItems是用来获取存储器中的items状态;

  • sumItems是用来计算items中所有物品的总价值;

  • getItemById是用来获取存储器中items数组的指定项。

在组件中使用Getter,只需通过调用this.$store.getters.getterName即可。例如,如果要获取计算出的sumItems的值,则只需调用this.$store.getters.sumItems即可。

总结

Getter是Vuex中的一个重要概念,它提供了一种方便的方式来获取存储器中的状态,同时还可以对状态进行过滤、计算、映射等操作。通过Getter,我们可以将应用程序的状态集中管理,避免了过多的重复代码,增强了代码的可维护性和可读性。

在实际开发中,有时我们需要在Getter中获取其他Getter的值,此时可以通过mapGetters辅助函数来实现。同时,Getter也是一个只读属性,因此在组件中只能获取状态值,不能修改它们。但是,如果需要改变状态的值,我们可以使用Vuex中提供的Action来实现。

在实际开发中,通过合理的使用Getter,我们可以更好地管理应用程序的状态,提高应用程序的性能和可维护性。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/645e9b0b968c7c53b00e7e31

纠错
反馈