记一次 vue 页面的computed中没有监听到store中属性变化的问题

差了很多网上资料,都对不上我这个问题。

原来是compute中定义的变量在没有在页面中使用,导致一直没有进入compute中的对应方法。

真狗哇!!!

Vue 2 中,Vuex 是用于管理全局状态的应用级状态容器,它可以帮助你在单页应用中跟踪和共享状态。如果你在一个页面上通过 Vuex 存储了数据,并希望在另一个页面监听这个数据的变化,你可以按照以下步骤操作: 1. **注入 store**: 首先,在需要访问 state 的组件中使用 `store` 注入,例如在 `main.js` 或者每个页面的 `setup()` 函数里: ```javascript // main.js import { createApp } from 'vue'; import App from './App.vue'; import store from './store'; const app = createApp(App); app.use(store); app.mount('#app'); ``` 2. **获取数据**: 使用 `mapState` 或 `mapGetters` 映射到组件的数据选项里,以便直接访问 Vuex 中的状态。例如: ```javascript // 在组件里 export default { computed: { myData () { return this.$store.state.myData; } }, }; ``` 3. **监听变化**: 如果你需要实时监听数据的变化,可以使用 `watch` 属性或者 `mapActions`、`mapMutations` 来处理 store 中的 mutation 或 actions。例如,如果你想监听 `myData` 变化: ```javascript export default { watch: { $store: { deep: true, // 深度监听 handler(newState) { console.log('myData changed:', newState.myData); }, immediate: true, // 初始化时也触发 }, }, }; ``` 4. **分发 actions** 或 **提交 mutations**: 当数据源更新时,通过调用 actions 进行异步操作,然后在 mutations 中修改状态。例如: ```javascript actions: { updateMyData({ commit }) { axios.get('/api/data') .then(response => commit('updateMyData', response.data)) .catch(error => console.error(error)); }, }, mutations: { updateMyData(state, newData) { state.myData = newData; }, } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值