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,这 ...
随机推荐
- windos 环境下载安装seata
参考: https://blog.csdn.net/lianghecai52171314/article/details/127330916
- 取出预训练模型中间层的输出(pytorch)
1 遍历子模块直接提取 对于简单的模型,可以采用直接遍历子模块的方法,取出相应name模块的输出,不对模型做任何改动.该方法的缺点在于,只能得到其子模块的输出,而对于使用nn.Sequensial() ...
- 痞子衡嵌入式:MCUBootUtility v2.3.1发布,解决了长久以来非空flash可能无法下载的问题
-- 痞子衡维护的NXP-MCUBootUtility工具距离上一个版本(v2.3)发布过去3个月了,这一次痞子衡为大家带来了小版本升级v2.3.1(第一次做x.y.z中z级别更新),这个版本主要有两 ...
- Python学习笔记--列表来啦!
列表的定义格式 示例: 列表的下标索引(千万别超出范围!!!) 示例: 正向和反向 取出嵌套列表的元素:(二维数组) 列表的常用的操作方法 查找某元素的下标 示例: 修改元素 插入元素 示例: 追加元 ...
- Java并发小结01
Java并发小结01 主要参考自<实战Java高并发程序设计>. 需要知道的概念 - 同步与异步 - 并发与并行 - 临界区 - 阻塞与非阻塞 - 死锁.饥饿.活锁 同步与异步 同步:同步 ...
- 顺应潮流,解放双手,让ChatGPT不废话直接帮忙编写可融入业务可运行的程序代码(Python3.10实现)
众所周知,ChatGPT可以帮助研发人员编写或者Debug程序代码,但是在执行过程中,ChatGPT会将程序代码的一些相关文字解释和代码段混合着返回,如此,研发人员还需要自己进行编辑和粘贴操作,效率上 ...
- 机器学习(二):感知机+svm习题 感知机手工推导参数更新 svm手推求解二维坐标超平面直线方程
作业1: 输入: 训练数据集 \(T = {(x1; y1); (x2; y2),..., (xN; yN)}\) 其中,\(x \in R^n\), \(y \in Y = \{+1, -1\}\) ...
- Java面试——锁
公平锁:是指多个线程按照申请锁的顺序来获取锁,有点先来后到的意思.在并发环境中,每个线程在获取锁时会先查看此锁维护的队列,如果为空,或者当前线程是等待队列的第一个,就占有锁,否则就会加入到等待队列中, ...
- 记一次 .NET 某医疗住院系统 崩溃分析
一:背景 1. 讲故事 最近收到了两起程序崩溃的dump,查了下都是经典的 double free 造成的,蛮有意思,这里就抽一篇出来分享一下经验供后面的学习者避坑吧. 二:WinDbg 分析 1. ...
- docker中跑MySQL
mkdir xxx 创建一个目录 cd xxx 进入该目录 运行: sudo docker run -p 3306:3306 --name mymysql \ --restart=always -v ...