当前位置: 首页 > 知识库问答 >
问题:

如何从vuex查看存储值?

顾均
2023-03-14

我在一起使用vuexvuejs 2

我是新来的vuex,我想看一个store变量的变化。

我想在我的vue组件中添加watch功能

这就是我到目前为止所做的:

import Vue from 'vue';
import {
  MY_STATE,
} from './../../mutation-types';

export default {
  [MY_STATE](state, token) {
    state.my_state = token;
  },
};

我想知道my_状态是否有任何更改

如何在vuejs组件中查看存储.my_state


共有3个答案

欧阳永宁
2023-03-14

您不应该使用组件的观察程序来监听状态更改。我建议您使用getter函数,然后将它们映射到组件中。

import { mapGetters } from 'vuex'

export default {
  computed: {
    ...mapGetters({
      myState: 'getMyState'
    })
  }
}

在您的商店中:

const getters = {
  getMyState: state => state.my_state
}

通过在组件中使用this.myState,您应该能够监听对存储所做的任何更改。

https://vuex.vuejs.org/en/getters.html#the-mapgetters-helper

许安邦
2023-03-14

简单到:

watch: {
  '$store.state.drawer': function() {
    console.log(this.$store.state.drawer)
  }
}
淳于功
2023-03-14

例如,假设你有一个水果篮,每次你从篮子中添加或删除一个水果,你想(1)显示关于水果计数的信息,但你也想(2)被通知水果的计数以某种奇特的方式...

果数成分

<template>
  <!-- We meet our first objective (1) by simply -->
  <!-- binding to the count property. -->
  <p>Fruits: {{ count }}</p>
</template>

<script>
import basket from '../resources/fruit-basket'

export default () {
  computed: {
    count () {
      return basket.state.fruits.length
      // Or return basket.getters.fruitsCount
      // (depends on your design decisions).
    }
  },
  watch: {
    count (newCount, oldCount) {
      // Our fancy notification (2).
      console.log(`We have ${newCount} fruits now, yay!`)
    }
  }
}
</script>

请注意,watch对象中函数的名称必须与computed对象中函数的名称相匹配。在上面的示例中,名称是count

监视属性的新值和旧值将作为参数传入监视回调(计数函数)。

篮子商店可以看起来像这样:

fruit-basket.js

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

const basket = new Vuex.Store({
  state: {
    fruits: []
  },
  getters: {
    fruitsCount (state) {
      return state.fruits.length
    }
  }
  // Obviously you would need some mutations and actions,
  // but to make example cleaner I'll skip this part.
})

export default basket

您可以在以下资源中阅读更多信息:

  • 计算属性和观察者
  • API文档:计算的
  • API文档:观察
 类似资料:
  • 我在vue文件中的“方法”中有这个 我得到以下错误:未捕获(在promise中)TypeError:无法读取未定义的属性'$store'

  • 我有一个存储图像的存储桶,当我使用图像的公共URL检索图像时,它会在浏览器中下载图像,而不是在浏览器中显示图像,我如何查看图像而不是下载图像。我为上传的图片使用以下URL。 https://www.googleapis.com/download/storage/v1/b/image-downloader-bucket/o/a06266f6-6082-468e-92ca-f918a48533a8?g

  • 主要内容:查看存储过程的状态,查看存储过程的定义创建好存储过程后,用户可以通过 SHOW ATATUS 语句来查看存储过程的状态,也可以通过 SHOW CREATE 语句来查看存储过程的定义。本节主要讲解查看存储过程的状态和定义的方法。 查看存储过程的状态 MySQL 中可以通过 SHOW STATUS 语句查看存储过程的状态,其基本语法形式如下: SHOW PROCEDURE STATUS LIKE 存储过程名; 用来匹配存储过程的名称,LI

  • 本文向大家介绍vuex存储token示例,包括了vuex存储token示例的使用技巧和注意事项,需要的朋友参考一下 1.在login.vue中通过发送http请求获取token 2.在store.js中对token状态进行监管 3.在router/index.js中 4.在main.js中定义全局默认配置: Axios.defaults.headers.common['Authentication

  • 对于vue-axios auth by api_token,我使用助手文件api.js。

  • 我的目标是提交(调用/调用)我在Vuex存储中定义的突变。 商店。js 由于我将Vuex连接到我的应用程序,因此我可以使用,不会出现问题。 main.js 例如: omponent.vue 现在,我想从vue路由器路由文件中提交一些内容,使用方法: 例如路线。js 然而,当我尝试上述方法时,我得到了错误 网上有很多通过导入成功使用vuex getters的例子。而且,如果我导入,我可以看到我的整个