// 在 Vue 中,如果你希望每次进入页面时都执行某个方法,可以使用生命周期钩子函数 `created` 或 `mounted`。但是,如果你需要在每次路由变化(例如通过导航进入页面)时都执行某个方法,那么应该使用 `beforeRouteEnter` 和 `beforeRouteUpdate` 路由守卫。
// 示例代码:
<template>
<div>
<!-- 页面内容 -->
</div>
</template>
<script>
export default {
data() {
return {
// 数据
};
},
methods: {
loadMethod() {
// 每次进入页面时要执行的逻辑
console.log('页面加载方法被调用');
}
},
beforeRouteEnter(to, from, next) {
// 在渲染该组件的对应路由被 confirm 前调用
// 不能获取组件实例 `this`
// 因为当守卫执行前,组件实例还没被创建
next(vm => {
vm.loadMethod(); // 调用方法
});
},
beforeRouteUpdate(to, from, next) {
// 在当前路由改变,但是该组件被复用时调用
this.loadMethod(); // 调用方法
next();
}
};
</script>
beforeRouteEnter:这个钩子在导航进入匹配的路由之前调用。它不能访问 this,因为组件实例还没有创建。我们使用 next(vm => {...}) 来访问组件实例,并在其中调用 loadMethod 方法。beforeRouteUpdate:这个钩子在当前路由改变但组件被复用时调用。这意味着你可以在同一个组件中处理不同的路由参数或查询参数的变化。这里可以直接调用 loadMethod 方法。loadMethod:这是一个自定义的方法,包含每次进入页面时需要执行的逻辑。这样,无论你是首次进入页面还是通过导航重新进入页面,loadMethod 都会被调用。
上一篇:vue3 emit传参
下一篇:vue 项目打包
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站