airyland / vux

Mobile UI Components based on Vue & WeUI
https://vux.li
MIT License
17.59k stars 3.71k forks source link

TabbarItem 的链接能不能增加replaces属性 #1158

Closed guandaxia closed 7 years ago

guandaxia commented 7 years ago

使用TabbarItem组件的时候,当在多个TabbarItem之间点击多次之后,再点击后退,就会重复这几个页面的显示。显然第一个TabbarItem所在的页面为主页面,当在其他TabbarItem页面点击后退时,应该返回第一个TabbarItem;而在第一个TabbarItem页面点击后退时应该没反应或者退出(微信打开时);

所以希望增加一个属性,来控制打开的这个页面是否需要返回。

airyland commented 7 years ago

添加这个 replace 属性并不能直接解决这个问题。按照你的描述,应该只有第一个页面 replace=false,切换到第二页面时依然需要使用 router.push, 切换到第三个页面开始才用 router.replace,永远覆盖第二个记录才能保证返回是第一个页面。这个逻辑并不能在 TabbarItem 里实现,或者说让简单组件变复杂了,因为要记录历史状态。

所以这个问题应该尝试直接在 TabbarItem 里绑定点击事件直接使用 router.replace 或者 router.push 来解决。