1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Vue 返回上一页页面不刷新

Vue 返回上一页页面不刷新

时间:2019-12-22 08:36:22

相关推荐

Vue 返回上一页页面不刷新

Vue 返回上一页页面不刷新

场景:首页点进列表页时要刷新数据,信息页返回列表页时不刷新数据

首先在router.js中配置

{path: '/home',name: 'home',meta: {title: '首页',},component: () => import('./views/home/index.vue'),},{path: '/info/:id',name: 'info',meta: {title: '信息',keepAlive: true,///此组件需要缓存isBack: false,//用来判断是否是返回上一页},component: () => import('./views/home/info.vue'),},{path: '/home/view',name: 'view',meta: {title: '详情',},component: () => import('./views/home/view.vue'),},

在App.vue中设置需要缓存的页面

<keep-alive><router-view v-if="$route.meta.keepAlive" class="Router" ></router-view></keep-alive><router-view v-if="!$route.meta.keepAlive" class="Router" ></router-view>

在中间页面就行判断

beforeRouteEnter(to, from, next) {//from从哪个页面过来的信息//to 到哪个页面来console.log(to)console.log(from)//用来判断是否缓存if (from.name === 'view') {to.meta.isBack = true}if (from.name === 'home') {to.meta.isBack = false}next()},//如果不设置keepAlive:beforeRouteEnter--》created--》 mounted--》destroyed//因为设置了keepAlive第一次进入时keepAlive会运行beforeRouteEnter--》activated--》created--》 mounted--》deactivated//第二次进入时只会运行beforeRouteEnter--》activated--》deactivatedactivated() {if (!this.$route.meta.isBack) {beforeRouteEnter--》activated--》created--》 mountedconst {id } = this.$route.paramsthis.id = idthis.loadData()}},

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。