vue实现页面渲染时候执行某需求

1. 前言

在之前的项目中,需要实现一个监控token是否过期从而动态刷新token的功能,然而在登录成功后创建的监控器会在浏览器刷新点击或者是通过导航栏输入网址时销毁...

2. 试错

前前后后始过很多方法,在这里就记录一下也许也能为各位读者排雷

2.1 window.addEventListener

一开始想到的是在每一个页面上加一个监听listener,监听页面加载事件,没当加载时候就调用检测token的方法,但是实际测试中并不能完全实现(主要在浏览器刷新点击)个人猜测可能是缓存问题,有时浏览器缓存可能导致脚本不按预期运行。

window.addEventListener('load', () => {console.log(11)onPageRender();
});

2.2 defineComponent

由于本人的项目是ts+vue的编译,一开始没想到用这个,就有了如下测试,即是在defineComponent中使用mounted钩子函数,每当页面动态刷新时都会调用生成监控器

<script lang="ts">import { defineComponent } from 'vue';import { onPageRender } from '@/utils/tokenMonitor'export default defineComponent({name: 'MyComponent',mounted() {// 在这里编写你的页面渲染逻辑onPageRender();},});
</script>

 但是在实际测试的过程中也是有时候正常有时候不正常,可能是我ts中使用响应式编程一些变量函数定义在这个defineComponent外面的原因(如下图所示),反正就是不能完美解决我的需求

3. 解决方案

在上图中使用 <script setup> 来定义script,官方的解释是这个setup就是会默认导出script中定义的所有内容,所以就不能再使用export default进行导出(ts会报错A module cannot have multiple default exports!!)该官方解释详见script setupicon-default.png?t=N7T8https://vuejs.org/api/sfc-script-setup.html在阅读官方文档的时候也是意外发现了最终的解决方案(在Using Custom Directives处,可以搜索一下)或者看我下面截图(不一定能正常显示,看得到最好啦😁)

 这里使用本地自定义指令,对于前端小白来说是一个新东西,根据官网的代码示例来改写代码就有了最终成功版本,此时每当页面加载到这个h1标签时候,就会执行vMonitorDirective中定义的beforeMount添加监控器,防止网站刷新时候被kill掉。最终测试结果也是正和我意,完美解决问题在此记录一下👍

const vMonitorDirective = {beforeMount: () => {// do something with the elementonPageRender();}
}// 绑定处,注意命名规范
<h1 v-Monitor-directive class="page-title">Orders</h1>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/16459.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

显式锁的分类

显式锁的分类 显式锁 有很多种&#xff0c;从不同的角度来看&#xff0c;显式锁大概有以下几种分类 可重入锁 和 不可重入锁悲观锁 和 乐观锁共享锁 和 独占锁可中断锁 和 不可中断锁公平锁 和 非公平锁 1.可重入锁&#xff08;Reentrant Lock&#xff09;与不可重入锁 可重入…

js学习第一周

1.变量 1.变量命名规则 严格区分大小写不能以数字开头不能是关键字&#xff0c;保留字&#xff0c;不能用name用作变量名小驼峰命名法命名符号只能用下划线 _ 和doller $并且中间不能有空格 2.类型推断 JavaScript是一种动态类型的语言&#xff0c;这意味着你不需要在声明变…

基于JAVA GUI的JDBC连接数据库

要在Java GUI中连接数据库&#xff0c;需要执行以下几个步骤&#xff1a; 导入必要的包。你需要导入Java数据库连接相关的包&#xff0c;例如java.sql和javax.sql。 与数据库连接相关的类和接口。 &#xff08;1&#xff09;DriverManger类。DriverManager类用于加载JDBD驱动…

【每日力扣】84. 柱状图中最大的矩形 与 295. 数据流的中位数

&#x1f525; 个人主页: 黑洞晓威 &#x1f600;你不必等到非常厉害&#xff0c;才敢开始&#xff0c;你需要开始&#xff0c;才会变的非常厉害 84. 柱状图中最大的矩形 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为…

redis6.2.7 搭建一主多从

1、集群规划 节点端口角色192.168.137.1026379master192.168.137.1026380slave192.168.137.1036381slave 2、伪集群搭建 2.1 创建fake_cluster 目录存放 公共配置文件 # 进入redis目录 cd /app/apps/redis-6.2.7# 创建存放伪集群的目录 mkdir fake_cluster#复制redis.conf到…

DTC 2024回顾丨云和恩墨重塑数据库内核技术,革新企业降本增效之道

在数字化浪潮席卷全球的当下&#xff0c;关系型数据库作为市场主导力量的地位依然稳固。然而&#xff0c;面对新兴数据库与服务形态的挑战&#xff0c;以及企业日益强烈的降本增效需求&#xff0c;数据库技术的发展必须紧跟时代步伐&#xff0c;充分发挥资源效能以提升企业竞争…

03自动辅助导航驾驶NOA

NOA是自动辅助导航驾驶或领航辅助驾驶的缩写&#xff0c;其全称为Navigate On Autopilot。在设定好导航路线并进入NOA的可使用路段后&#xff0c;驾驶员即可开启辅助驾驶。在A点到B点的过程中&#xff0c;NOA能够实现自动上下匝道、自行超车、自行变道、自适应巡航等多种功能。…

【机器学习300问】99、多通道卷积神经网络在卷积操作时有哪些注意事项?

一、多通道卷积神经网络示例 还是以图像处理为例&#xff0c;如果你的目标不仅是分析灰度图像特性&#xff0c;还打算捕捉RGB彩色图像的特征。如下图&#xff0c;当面对一张66像素的彩色图像时&#xff0c;提及的“3”实际上是指红、绿、蓝三种颜色通道&#xff0c;形象地说&am…

Nginx R31 doc-11-Compression and Decompression 压缩与解压缩

前言 大家好&#xff0c;我是老马。很高兴遇到你。 我们为 java 开发者实现了 java 版本的 nginx https://github.com/houbb/nginx4j 如果你想知道 servlet 如何处理的&#xff0c;可以参考我的另一个项目&#xff1a; 手写从零实现简易版 tomcat minicat 压缩与解压缩 压缩…

Java 简易操作Excel

首先&#xff0c;我们需要创建一个数据库表来存储这些单词及其相关信息。以下是一个简单的SQL语句示例&#xff0c;用于创建这样一个表&#xff1a; sql CREATE TABLE EnglishWords (id INT AUTO_INCREMENT PRIMARY KEY,word VARCHAR(255) NOT NULL,phonetic TEXT NOT NULL,c…

书生·浦语第二期-笔记2

课程链接&#xff1a;https://github.com/InternLM/Tutorial/tree/camp2 视频地址&#xff1a;轻松玩转书生浦语大模型趣味Demo_哔哩哔哩_bilibili 大模型及InternLM介绍 大模型&#xff1a;人工智能领域中参数数量巨大、拥有庞大计算能力和参数规模的模型 特点&#xff1a…

使用json-server来创建mockserver

代替mock模拟数据 1.使用mkdir vue3-ts-server 创建目录 2.npm init -y 生成package.json的依赖配置文件 详见json-server - npm 3.cnpm install json-server -S 4.目录结构是data&#xff0c;public&#xff0c;src{app.js &#xff0c; router.js &#xff0c; db.js &…

【Linux杂货铺】进程通信

目录 &#x1f308; 前言&#x1f308; &#x1f4c1; 通信概念 &#x1f4c1; 通信发展阶段 &#x1f4c1; 通信方式 &#x1f4c1; 管道&#xff08;匿名管道&#xff09; &#x1f4c2; 接口 ​编辑&#x1f4c2; 使用fork来共享通道 &#x1f4c2; 管道读写规则 &…

初中英语优秀作文分析-002Who stole the cupcake-谁偷了纸杯蛋糕?

更多资源请关注纽扣编程微信公众号 记忆树 1 One Sunday afternoon, Leslie was at home with her kids, 3-year-old Angel, 6-year-old Carl, and 7-year-old Tony. 翻译 一个周日的下午&#xff0c;Leslie和她的孩子们在家&#xff0c;他们是3岁的Angel&#xff0c;6岁的…

镜子摆放忌讳多

镜子是我们日常生活中不可或缺的物品。在风水中&#xff0c;镜子的作用非常多&#xff0c;能够起到一定的作用。镜子的摆放位置也是非常有讲究的&#xff0c;摆放不好会直接影响到家人的事业、财运、婚姻乃至健康等诸多方面。 第一个风水忌讳&#xff0c;镜子对大门。大门的正前…

Linux防火墙之iptables(二)

一.SNAT策略概述 1.SNAT 策略的典型应用环境 局域网主机共享单个公网IP地址接入Internet&#xff08;私有IP不能在Internet中正常路由&#xff09; 局域共享上网 2.SNAT 策略的原理 源地址转换&#xff0c;Source Network Address Translation 修改数据包的源地址 未作SNAT转换…

用three.js+echarts给公司写了一个站点数据大屏系统经验总结

时间过的好快,参加公司的新项目研发快一年了,五一机器人项目首秀,我们遇到了高并发集中下单情景,然后海量数据处理场景来了,给我在后端领域的高并发实践业务上画上了漂亮的一笔经验。人都是在磨练中成长,我很感谢这次给我的机会,虽然有点累,但也有点小成就。正好现在有…

时隔一年半。。。

大概一年半的时间没登录&#xff0c;经历了蛮多事情&#xff0c;包括不满&#xff0c;辞职&#xff0c;备考&#xff0c;笔试&#xff0c;面试… 大体上是蛮幸运的&#xff0c;又要去新的单位工作了&#xff0c;第一份事业编的工作做得真的很痛苦&#xff0c;大概是因为丢掉了专…

AGI系列(1):掌握AI大模型提示词优化术,提问准确率飙升秘籍

当我们向AI大模型提问时&#xff0c;通常人们的做法是有什么问题&#xff0c;就直接去问&#xff0c;得到大模型的回复结果&#xff0c;时好时坏&#xff0c;完全没有可控性。 那么有没有一种方式或是一套方法&#xff0c;可以让我们向大模型提问时&#xff0c;得到的结果更准确…