问题:使用Vue简单状态管理Store模式,组件中可以获取到store中的数据,在组件中通过事件改变store中的值,并提交到store后,在store中可以打印出改变后的值,但在组件中通过watch无法监听到最新值的变化store.jsletstore={state:{message:'Hello!'},setMessageAction(newValue){this.state.message=newValueconsole.log('store.js-newValue:',this.state.message);//当组件改变数据后这里是可以获取到改变后的最新值的},}exportdefaultstoremain.js中引入store//简单store模式importstorefrom'./store'Vue.prototype.$store=store组件中使用store{{message}}changeStoreexportdefault{data(){return{message:''}},created(){this.message=this.$store.state.message},watch:{'$store.state.message':function(newVal){//watch无法获取组件改变后的新值console.log(newVal);console.log(this.$store.state.message);}},methods:{change(){this.$store.setMessageAction('changehelloworld')}},}" _ue_custom_node_="true">
2 回答
一只名叫tom的猫
TA贡献1906条经验 获得超3个赞
你的store.js只是个暴露个普通对象,是什么原因让你认为它是响应式的会被watch?你可以把state的数据用Vue.observable来处理一下,应该是可以的,没这么玩过,未实测
添加回答
举报
0/150
提交
取消