iview / iview-admin

Vue 2.0 admin management system template based on iView
https://admin.iviewui.com/
MIT License
16.48k stars 4.84k forks source link

关于标签导航 #476

Open picnic-yu opened 6 years ago

picnic-yu commented 6 years ago

页面多个标签导航切换时候会刷新页面,想问下怎么保持页面不刷新。

lison16 commented 6 years ago

不理解你说的刷新页面是什么意思,是整个页面会重载吗

zzkzzk1984 commented 6 years ago

我也遇到了,就是表单填写到一半没保存,然后切换到其他页签再切换回来的时候,页面刷新了,录入的东西不见了

djkloop commented 6 years ago

@zzkzzk1984 @picnic-yu 我也发现了...但是我用了个比较极端的方法解决的。在app.vue里面在加一层keep-alive image 然后在main.vue里面把include删了(ps:删除的原因是因为加了没有什么效果...) image 最后的效果虽然达到了.但是这个相当于全页面缓存了...难道是addrouters加载的路由不支持include这个属性? image

// update 2018/2/5

最近因为发现上面的写法会有一连串问题最后还是去看官网的时候找到最后的原因了。看了下keep-alive api有一段话是这样讲的.要给动态路由的组件添加name属性如果没有name属性keep-alive 是没有效果的

https://cn.vuejs.org/v2/api/#keep-alive
匹配首先检查组件自身的 name 选项,如果 name 选项不可用,则匹配它的局部注册名称 (父组件 components 选项的键值)。匿名组件不能被匹配。

最后的效果是这样的... image

app.vue 的keep-alive可以删了。 main.vue 直接按照以前iview-admin一样的写法就好了

LouisGo commented 6 years ago

在vue实例里加上name属性,对应routers里面的name

linziguan commented 6 years ago

其实将原来 `

            </keep-alive>`

改成 `

            </keep-alive>`

即可

jiangdi0924 commented 5 years ago

@djkloop 我现在遇到一个问题, 动态路由 参数变了页面没有重新加载组件。不知道你怎么解决的

wmper commented 5 years ago

在vue实例里加上name属性,对应routers里面的name

页面加上对应的name即可, 切换的时候就不会刷新了