lzxb / vuet

允许你定义飙车过程的集中式状态管理模式
MIT License
422 stars 74 forks source link

请教个vuet问题,应该在哪里只调用一次方法,返回回来后不会再次触发 #15

Closed alasai closed 6 years ago

alasai commented 6 years ago

我在vuet中定义了一个模块,用来显示“图片幻灯片”, 运行起来后,第一次是正常的,但是点击其中一张图片进去查看之后,再点击返回,图片幻灯片成倍显示了,代码如下 vuet模块代码如下 modules: { topic: { modules: { slider:{ data () { return { list: [] } }, route: { once: true // 当前页面,只加载一次,这样我们就可以做上拉加载了 }, async fetch () { const res = await http.get('News/slides?time='+Math.random()) //alert(res.data); this.list = [...this.list, ...res.data] } } } } }

调用页面代码如下

export default { mixins: [ mapModules({ data: 'topic-newslist',pic:'topic-slider' }), mapRules({ route: 'topic-newslist' }) ], mounted(){ this.pic.fetch(); } }

alasai commented 6 years ago

用了一个很笨的方法来解决 mounted(){ if(this.pic.list.length==0) { this.pic.fetch(); } } 请问除了这个还要其他处理方法吗

lzxb commented 6 years ago

这个是由规则来自动加载的,不需要你手动加载