vue全家桶进阶之路38:Vue3 组件内部路由守卫
在 Vue Router 中,可以为路由和路由组件注册全局的路由守卫,也可以在组件内部注册路由守卫。
组件内部的路由守卫有以下几种:
- beforeRouteEnter:在路由进入组件前被调用,但是在组件实例化之前被调用,因此在该守卫中无法访问组件实例的
this。 - beforeRouteUpdate:在当前路由改变,但是仍然在该组件中时被调用,即在当前组件的
beforeRouteLeave守卫执行完毕之后,在同一组件中导航时调用。 - beforeRouteLeave:在路由离开组件时被调用,可以在该守卫中确认是否允许离开该组件。
组件内部的路由守卫的注册方法与全局路由守卫相同,可以通过 Vue Router 实例的 beforeEach、beforeResolve、afterEach 方法来注册路由守卫,也可以通过在组件选项中添加 beforeRouteEnter、beforeRouteUpdate、beforeRouteLeave 属性来注册路由守卫。
下面是一个示例代码:
<template>
<div>
<h1>{{ title }}</h1>
<p>{{ message }}</p>
</div>
</template> <script>
import { defineComponent, reactive, ref } from 'vue' export default defineComponent({
setup() {
const title = ref('Component with Route Guard')
const state = reactive({
message: 'This component has route guards.'
}) const beforeRouteEnter = (to, from, next) => {
console.log('beforeRouteEnter')
next(vm => {
console.log('beforeRouteEnter: next callback')
})
} const beforeRouteUpdate = (to, from, next) => {
console.log('beforeRouteUpdate')
console.log(this)
next()
} return {
title,
message: state.message,
beforeRouteEnter,
beforeRouteUpdate
}
}
})
</script>
在上面的示例中,setup() 函数被用于创建响应式数据,并且定义了 beforeRouteEnter 和 beforeRouteUpdate 两个路由守卫。其中,title 使用了 ref 来创建一个响应式数据,而 state 使用了 reactive 来创建一个响应式对象。同时,beforeRouteEnter 和 beforeRouteUpdate 被定义为普通函数,并作为 setup() 函数的返回值暴露出来,以供组件外部使用。
vue全家桶进阶之路38:Vue3 组件内部路由守卫的更多相关文章
- Vue 全家桶 + Electron 开发的一个跨三端的应用
代码地址如下:http://www.demodashi.com/demo/11738.html GitHub Repo:vue-objccn Follow: halfrost · GitHub 利用 ...
- Vue全家桶高仿小米商城
大家好,我是河畔一角,时隔半年再次给大家带来一门重量级的实战课程:<Vue全家桶高仿小米商城>,现在很多公司都在参与到商城的构建体系当中,因此掌握一套商城的标准开发体系非常重要:商城的开始 ...
- vue证明题一,vue全家桶的构成
简单说下vue的构成,当然是简单为主,网上这东西满天飞,简单说几句就ok 1.vue是什么 vue读作view,是一种js框架.只关注于视图层,操作内容包括js,html,css 2.vue全家桶是什 ...
- 用 Vue 全家桶二次开发 V2EX 社区
一.开发背景 为了全面的熟悉Vue+Vue-router+Vuex+axios技术栈,结合V2EX的开放API开发了这个简洁版的V2EX. 在线预览 (为了实现跨域,直接npm run dev部署的, ...
- Vue全家桶
简介 “简单却不失优雅,小巧而不乏大匠”. Vue.js 是一个JavaScriptMVVM库,是一套构建用户界面的渐进式框架.它是以数据驱动和组件化的思想构建的,采用自底向上增量开发的设计. 为什么 ...
- 从零开始系列之vue全家桶(3)安装使用vuex
什么是vuex? vuex:Vue提供的状态管理工具,用于同一管理我们项目中各种数据的交互和重用,存储我们需要用到数据对象. 即data中属性同时有一个或几个组件同时使用,就是data中共用的属性. ...
- 使用vue全家桶制作博客网站
前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用vue全家桶制作的博客网站 概述 该项目是基于vue全家桶(vue.vue-router.vuex.v ...
- 转载: 使用vue全家桶制作博客网站 HTML5 移动网站制作的好教程
使用vue全家桶制作博客网站 前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用vue全家桶制作的博客网站 概述 该项目是基于vue全家桶(vue. ...
- Vue全家桶介绍
一直不清楚全家桶是什么玩意,上网搜了一下,才知道就是平时项目中使用的几个依赖包,下面分享一下 Vue 全家桶介绍 Vue有著名的全家桶系列,包含了vue-router(http://router.vu ...
- 一个简单的假vue全家桶(vue+vue-router+require)
首先说明我觉得这是一个比较好理解的vue全家桶(虽然是假的),模块化也是用require来做的,而且如果后期有必要压缩我也会用gulp来做 1.依赖个个本地模块,require只是用来载入page,这 ...
随机推荐
- Django中间件的介绍及使用
1.中间件的理解: 是用来处理Django请求与响应的框架级别的钩子,处于wsgi模块与视图函数之间,在执行视图函数之前和之后所做 的动作,是一个轻量级.低级别的插件,作用于全局,使用不当很 ...
- Java 面试手撕代码
1. 判断括号有效性 public static boolean fun5(String str) { HashMap<Character, Character> hashMap = ne ...
- burpsuite 设置文字大小、抓取https数据头
设置文字大小 burpsuite安装好后,有些时候文字非常的小,看的眼睛直接痛死. 找到 User options -> Display 其中 User Interface -> Font ...
- 快速掌握Linux三剑客命令使用
前言 Linux三剑客指的是grep.sed以及awk命令的使用,这三个命令功能异常强大,大到没朋友.grep命令主打"查找",sed命令主打"编辑",awk命 ...
- GPT-4 来了!这些开源的 GPT 应用又要变强了
近日,在 GPT-3.5 发布的半年后,OpenAI 正式推出了大版本的 GPT-4,不同于 GPT-3 到 GPT-3.5 耗时两年,这次版本升级只用了半年.如果你对 OpenAI 不熟悉,答应我读 ...
- SpringBoot 整合 Kafka 与 Avro 【No group.id】 问题解决方法
[问题描述]:ApplicationContextException: Failed to start bean 'org.springframework.kafka.config.internalK ...
- JVM加载中初始化时机?什么时候不会进行初始化?
初始化的过程是给静态变量赋予指定值以及执行静态代码块的过程. 当遇到new,getstatic,putstatic,invokestatic指令时要进行初始化,也就是new实例化对象,调用静态变量以及 ...
- LRU缓存替换策略及C#实现
目录 LRU缓存替换策略 核心思想 不适用场景 算法基本实现 算法优化 进一步优化 Benchmark LRU缓存替换策略 缓存是一种非常常见的设计,通过将数据缓存到访问速度更快的存储设备中,来提高数 ...
- python入门教程之一 什么是python
python简介 1 什么是python Python是一种计算机程序设计语言.你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合初学者的Basic语言,适合网页 ...
- Django终端打印执行的SQL语句
1.queries查询 >>>obj = models.User.objects.filter(name='Mcoco')[0] >>>obj.group.name ...