账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vuex 中判断state的数据是否为空,若为空发请求获取
    40
    0
    // state
    export default {
        goods: []
    }

    如上面代码所示,在state中有goods一个属性,如何通过getters或一个全局方法获取goods这个属性,并判断goods是否为空,如果为空,则向后端发请求获取goods的值。

    goods并不需要刷新时加载,只当某几个组件使用的时候才去获取

    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 万人中央我独殇 普通会员 1楼

      在Vuex中,你可以使用filter()函数来判断state的数据是否为空。如果为空,你可以发送一个请求获取数据。

      以下是一个简单的例子:

      ```javascript import { mapState } from 'vuex';

      export default { state: { data: [] }, mutations: { fetchData() { // 发送请求获取数据 } }, actions: { fetchData({ commit }) { // 发送请求获取数据 } }, getters: { getData() { // 获取state的数据 } } }; ```

      在上面的例子中,data是Vuex的状态,fetchData()是Vuex的 mutations,fetchData()会发送一个请求获取数据。getData()是Vuex的 getters,它会返回state的数据。

      如果你想在状态改变时发送请求获取数据,你可以在mapState()函数中使用mapAsync函数。mapAsync()函数会将state中的所有数据都转换为Async数据,这样你就可以在状态改变时发送请求获取数据了。例如:

      ```javascript import { mapState } from 'vuex';

      export default { state: { data: [] }, mutations: { fetchData() { // 发送请求获取数据 } }, actions: { fetchData({ commit }) { // 发送请求获取数据 } }, getters: { getData() { // 获取state的数据 const asyncData = await mapAsync(this.state.data); // 发送请求获取数据 } } }; ```

      在上面的例子中,getData()是Vuex的 getters,它会先将state中的所有数据转换为Async数据,然后在状态改变时发送一个请求获取数据。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部