Как определить, возвращается ли страница текущей страницей или отправленной страницей, когда vue кэширует маршрут

Проблема: в проекте vue после использования Keep-Alive компоненты могут кэшироваться. Но при фактическом использовании часто будет сцена, то есть страница сведений о списке. После перехода со списка на страницу сведений, а затем возвращения на страницу списка, мы ожидаем, что страница списка будет кэширована; но если он переключается. При возвращении на эту страницу списка после перехода на другие страницы списка мы ожидаем, что он снова получит данные;

Метод: Чтобы решить эту проблему, нам нужно использовать идентификатор, чтобы определить, возвращается ли текущая страница со страницы сведений или повторно вводится; здесь я использую атрибут, добавленный в мета в маршруте для управления, код выглядит следующим образом :

const routes = [
	{
    
    
		name: 'xxx',
		path: 'xxxx',
		component: component,
		meta: {
    
    
			keepAlive: true,
			isPush: true       // 用于标识是否为push进入该页面
		}
	}
]

Здесь мы определяем атрибут isPush для управления. Здесь наша идея заключается в том, что push приходит по умолчанию. При переходе на страницу сведений установите для него значение false, а затем определите, активировано ли значение, истинно, обновите его снова, и оно будет false Просто измените значение обратно на true. код показан ниже:

// 去详情页面的方法
goDetail(){
    
    
	this.$route.meta.isPush = false;
	this.$router.push('detail');
},

// 再次激活的钩子
acitvated(){
    
    
	// 如果isPush为true,证明不是详情页返回的,否则就是从详情页返回的
	if(this.$route.meta.isPush){
    
    
		// 重置这个页面的信息
		this.resetTable()
	}else{
    
    
		// 重置isPush的状态
		this.$route.meta.isPush = true;
	}
}

Таким образом, можно определить, была ли страница активирована со страницы сведений или введена с других страниц.

Guess you like

Origin blog.csdn.net/brilliantSt/article/details/128287700