We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
vue 通过路由跳转时,默认会刷新页面。常用的两种路由跳转方式:
向前跳转用 push this.$router.push('/materials')
this.$router.push('/materials')
向后跳转用 back (而非我们理解的堆栈 push 和 pop) this.$router.back()
this.$router.back()
当遇到需要缓存的页面,可以在 App.vue 文件中指定,需要缓存的组件(页面)名称。
App.vue
<template> <div id="app"> <!-- 加入需要保存状态的组件 --> <keep-alive include="ProjMaterialList,ProjMaterialEdit,ProjMaterialDetails"> <router-view></router-view> </keep-alive> </div> </template>
这样做,会出现一个问题。下次,进入页面就不会执行数据的重新加载了。因为 created 等函数都没有重新调用。这时就需要用到路由的hook函数beforeRouteEnter了。
// 路由的 hooks beforeRouteEnter (to, from, next) { let target = from.name next(vm => { // 这里加入缓存白名单,注意:此处是路由的名称 if (target === 'preview' || target === 'materialDetails') { // 当上一个页面是 // 预览页面、详情页面 // 时,不需要执行初始化操作 } else { vm.init() } }) }, methods: { init() { // TODO,加载数据等方法 } }
于是,你就可以精确控制,不同url该不该缓存数据。
The text was updated successfully, but these errors were encountered:
No branches or pull requests
vue 通过路由跳转时,默认会刷新页面。常用的两种路由跳转方式:
向前跳转用 push
this.$router.push('/materials')
向后跳转用 back (而非我们理解的堆栈 push 和 pop)
this.$router.back()
当遇到需要缓存的页面,可以在
App.vue
文件中指定,需要缓存的组件(页面)名称。这样做,会出现一个问题。下次,进入页面就不会执行数据的重新加载了。因为 created 等函数都没有重新调用。这时就需要用到路由的hook函数beforeRouteEnter了。
于是,你就可以精确控制,不同url该不该缓存数据。
The text was updated successfully, but these errors were encountered: