使用vuex来进行组件传值通信时的问题

由于vue在非父子组件间通信比较麻烦,所以使用vuex这个神器是必然的,保存在vuex里的公共数据能够轻易地实现组件间的通信。

但最近做项目过程中发现了一个问题,想要获取vuex里的数据,并且这个数据还要实时更新的话,是不能保存在data里的,必须使用computed计算属性。

而我在使用的过程中一开始是全部将数据获取保存在了data里,但没有出现问题的原因是我所写的那个组件每一次都会重新执行created生命周期钩子函数,也就是data每一次都会重新初始化,所以没有发现这个问题,但实际上data就如同一个纯粹的字面量,它只会保存第一次获取到的vuex里的值,之后是不会再进行更新的。

换句话说,也就是data里冒号右边的内容依赖更新时,冒号左边的属性值是不会变更的,仍然是初始化的时候的那个值。

而computed是依赖追踪的,它再值发生改变的时候会触发重新计算,所以想要对vuex里保存的数据进行获取操作,并且想要实时更新的话,还是使用computed属性比较稳妥。

computed:{
        topicList(){
            return this.$store.state.topicList
        } 
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我是信心 在自卑的泥土里扎根 我是勇气 在懦弱的养分中发芽 我是热情 在冷漠的枝头上跳跃 我是阳光 在黑暗的影子中...
    湮灭降临阅读 223评论 2 1
  • 8月2日凌晨,尼泊尔临近中国边境地区突发山体滑坡,导致尼泊尔通往中国樟木口岸的道路中断。当地媒体称,约上千名中国游...
    爽三三阅读 634评论 0 0
  • 走在傍惶的路上,一个人独自流浪 多少过去的岁月,不仅暗暗的心伤 想起以前的辉煌,何等潇洒又风光 往事如烟春又去,唯...
    钝角阅读 825评论 5 28