当前位置: 首页 > news >正文

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>

相关文章:

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

1. 前言 在之前的项目中&#xff0c;需要实现一个监控token是否过期从而动态刷新token的功能&#xff0c;然而在登录成功后创建的监控器会在浏览器刷新点击或者是通过导航栏输入网址时销毁... 2. 试错 前前后后始过很多方法&#xff0c;在这里就记录一下也许也能为各位读者排…...

Python小游戏——俄罗斯方块

文章目录 项目介绍环境配置代码设计思路1.初始化和导入库&#xff1a;2.定义颜色和屏幕尺寸&#xff1a;3.定义游戏逻辑&#xff1a;4.游戏循环&#xff1a; 源代码效果图 项目介绍 俄罗斯方块游戏是一款经典的益智游戏&#xff0c;玩家通过旋转和移动各种形状的方块&#xff…...

Moto和Inter字节序

inter: 低地址按照start_bit位放低字节依次往高字节填充 MotoLsb: 低地址按照start_bit位放高字节&#xff0c;依次往低字节填充MotoMsb&#xff1a;高字节按照start_bit位放低地址&#xff0c;依次往高字节填充...

外汇天眼:野村证券和Laser Digital与GMO互联网集团合作发行日元和美元稳定币

野村控股和Laser Digital将与GMO互联网集团合作&#xff0c;在日本探索发行日元和美元稳定币。GMO互联网集团的美国子公司GMO-Z.com Trust Company, Inc. 在纽约州金融服务部的监管框架下&#xff0c;在以太坊、恒星币和Solana等主要区块链上发行稳定币。GMO-Z.com Trust Compa…...

Python怎么使用getattr?

getattr() 是 Python 的内置函数&#xff0c;用于获取对象的属性值。它接受三个参数&#xff1a;对象、属性名称以及一个可选的默认值。如果对象具有指定的属性&#xff0c;getattr() 会返回该属性的值&#xff1b;如果对象没有该属性&#xff0c;并且提供了默认值&#xff0c;…...

[算法] 优先算法(三):滑动窗口(上)

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏:&#x1f355; Collection与数据结构 (92平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 &#x1f9c0;Java …...

[蓝桥杯 2020 省 A1] 超级胶水

一.题目 题目描述 小明有 n 颗石子&#xff0c;按顺序摆成一排。 他准备用胶水将这些石子粘在一起。 每颗石子有自己的重量&#xff0c;如果将两颗石子粘在一起&#xff0c;将合并成一颗新的石子&#xff0c;重量是这两颗石子的重量之和。 为了保证石子粘贴牢固&#xff0…...

读书笔记分享

1.苏格拉底只在需要的时候才索取&#xff0c;那样便能以最少的物质满足自身的要求。他认为每个人都天生体质脆弱&#xff0c;只有在贫乏的环境中才会锻炼地强壮起来。生活中的大多数人认为&#xff0c;奢华才是幸福的生活。无休止的物质积聚&#xff0c;让人们每天生活在一个内…...

考试宝典——软件过程与管理重点知识总结

概论 软件工程三要素 过程方法工具 软件过程的定义 软件过程是用于软件开发及维护的一系列活动、方法及实践。 常见软件过程分类&#xff08;五大类&#xff09; 客户-供应商过程&#xff1a;内部直接影响到客户、外部直接影响开发、向客户交付软件以及软件正确操作与使用的过…...

穿越时空的工厂之旅:探索可视化三维场景的奥秘

在科技日新月异的今天&#xff0c;我们似乎总是在不断追求着更加高效、智能的生产方式。 传统的工厂管理方式往往依赖于平面图纸、纸质文档和现场巡查&#xff0c;这不仅效率低下&#xff0c;而且容易出错。而三维可视化技术通过3D建模和虚拟现实技术&#xff0c;将工厂内部的各…...

2024年推荐的适合电脑和手机操作的线上兼职副业平台

总是会有人在找寻着线上兼职副业&#xff0c;那么在如今的2024年&#xff0c;互联网提供了诸多方便&#xff0c;无论你是宝妈、大学生、程序员、外卖小哥还是打工族&#xff0c;如果你正在寻找副业机会&#xff0c;那么这篇文章将为你提供一些适合电脑和手机操作的线上兼职副业…...

传感器的静态特性

传感器的静态特性是指传感器在稳态&#xff08;输入量为常量或变化极慢时&#xff09;输入信号作用下&#xff0c;传感器输出与输入信号之间的关系。这种关系一般用曲线、数学表达式或表格来表示。传感器的静态特性是传感器的基本特性之一&#xff0c;其描述了传感器在不考虑迟…...

如果jupyter notebook不能实现网页自动跳转,参考下面的链接

一招搞定Jupyter-notebook命令行打开之后不能自动跳转浏览器_一招搞定jupter notebook命令行打开之后-CSDN博客...

顺序表实现通讯录项目

目录 一.实现功能&#xff1a; 二.文件结构 三.代码实现 1.初始化 2.通讯录的销毁 3.通讯录添加数据 4.通讯录删除数据 5.通讯录的修改 6.展现通讯录数据 7.通讯录查找 四.代码 SeqList.h Contact.h Contact.c test(通讯录).c 一.实现功能&#xff1a; ⾄少能够存…...

【ai】pycharm设置软件仓库编译运行基于langchain的chatpdf

联想笔记本 y9000p创建python工程: 使用langchain支持openai的向量化embedding安装软件包 发现没有openai ,添加软件仓库打开工具窗口 点击设置...

LeetCode:279.完全平方数

class Solution:def numSquares(self, n: int) -> int:dp[i for i in range(n1)]for i in range(2,n1):for j in range(1,int(i**(0.5))1):dp[i]min(dp[i],dp[i-j*j]1)return dp[-1]代码解释 初始化 DP 数组&#xff1a; dp [i for i in range(n1)] 这里&#xff0c;dp[i]…...

Python面试宝典:Python中与ORM技术(对象关系映射)相关的面试笔试题(1000加面试笔试题助你轻松捕获大厂Offer)

Python面试宝典:1000加python面试题助你轻松捕获大厂Offer【第二部分:Python高级特性:第十五章:数据库编程:第二节:ORM技术】 第十五章:数据库编程第二节:ORM技术SQLAlchemyDjango ORMORM技术的优势和劣势python中与ORM技术相关的面试笔试题面试题1面试题2面试题3面试题…...

VUE3+TS+elementplus创建table,纯前端的table

一、前言 开始学习前端&#xff0c;直接从VUE3开始&#xff0c;从简单的创建表格开始。因为自己不是专业的程序员&#xff0c;编程主要是为了辅助自己的工作&#xff0c;提高工作效率&#xff0c;VUE的基础知识并不牢固&#xff0c;主要是为了快速上手&#xff0c;能够做出一些…...

UE驻网失败问题(二)

另一个UE注册失败的问题&#xff0c;具体过程如下&#xff1a; 问题现象如上&#xff0c;UE在这个N48上的小区一直在重复上述过程&#xff0c;收到RRC Setup后就不发RRC Setupcomplete&#xff0c;闭上眼睛也知道大概率是这个RRC Setup的配置有问题。 在问题时间点周围查看&…...

【MySQL】第三周作业

【MySQL】第三周作业 1、在数据库example下创建college表。2、在student表上创建视图college_view。3、查看视图college_view的详细结构4、 更新视图。5 、修改视图&#xff0c;6 、删除视图college_view 1、在数据库example下创建college表。 College表内容如下所示 字段名 …...

Android系统级证书注入:突破HTTPS抓包限制的完整方案

1. 这不是“换个证书”那么简单&#xff1a;为什么系统级证书安装成了Android抓包真正的分水岭你肯定试过在Android手机上用Charles抓包——App打开&#xff0c;Charles配好代理&#xff0c;手机Wi-Fi设好代理地址&#xff0c;点开浏览器&#xff0c;流量哗哗进来了。但一打开微…...

2026企业数字化转型:从规则脚本到实在Agent智能体进化全解析

站在2026年的时间节点回看&#xff0c;企业数字化转型已从“工具补丁时代”全面进入“原生智能时代”。 曾被视为提效利器的传统RPA&#xff08;机器人流程自动化&#xff09;&#xff0c;在面对日益复杂的业务长链路与海量非结构化数据时&#xff0c;正逐渐显露出其作为“静态…...

AI Agent记忆系统工程:从短期记忆到长期知识的完整架构

为什么"记忆"是Agent工程化的核心难题 在2026年&#xff0c;构建一个能在单次对话中完成复杂任务的AI Agent已经相对成熟——LangGraph、AutoGen等框架提供了完善的工具链。但当我们试图构建一个能够跨会话学习、记住用户偏好、积累领域知识的AI应用时&#xff0c;挑…...

国产系统(UOS/麒麟/方德)截图工具终极指南:从内置工具到第三方替代方案全解析

国产操作系统截图工具全攻略&#xff1a;从基础操作到高阶玩法在数字化办公时代&#xff0c;截图功能已成为日常工作中不可或缺的生产力工具。对于统信UOS、麒麟KOS、方德NFS等国产操作系统的用户而言&#xff0c;掌握系统内置截图工具的各项功能&#xff0c;并了解当内置工具无…...

手把手教你复现DM-VIO:用开源代码在Ubuntu 20.04上跑通这个SOTA视觉惯性里程计

从零搭建DM-VIO&#xff1a;Ubuntu 20.04实战指南与深度调优当视觉惯性里程计&#xff08;VIO&#xff09;遇上延迟边缘化技术&#xff0c;DM-VIO在三大主流数据集上创造了单目系统超越立体方案的奇迹。本文将带您穿越从环境配置到实战调优的全流程&#xff0c;揭秘这个2022年R…...

全方位强化 AI 逆向能力,这款 Skill 太实用了

让 Codex 默认支持 JS 逆向Codex GPT-5.4 默认对逆向和爬虫类请求比较保守&#xff0c;常见表现是只讲原则&#xff0c;不继续落地。市面上的常规做法是先发提示词&#xff0c;我这边因为每次重复发送比较麻烦&#xff0c;所以进一步封装成了 Skill&#xff0c;实际验证可行。…...

从Java全栈开发到云原生:一次真实的面试对话与技术剖析

从Java全栈开发到云原生&#xff1a;一次真实的面试对话与技术剖析 面试场景回顾 在一次真实的互联网大厂Java全栈开发岗位的面试中&#xff0c;面试官和应聘者展开了一场围绕技术栈、项目经验和系统设计的深入交流。面试官以专业严谨的态度&#xff0c;逐步引导应聘者展示其技…...

机器学习真实难点:知识断裂、工具混沌与数据偏差

1. 这不是一份职业指南&#xff0c;而是一份“入行前必读的清醒剂”“Why it’s Super Hard to be an ML Researcher or Developer?”——这个标题我第一次看到时&#xff0c;正坐在凌晨两点的实验室里&#xff0c;盯着第17版模型在验证集上掉点0.3%的结果发呆。旁边三台GPU服…...

UE5手写HLSL实现高斯模糊:精准控制σ与采样策略

1. 这不是“调个参数就完事”的模糊——为什么UE5里手写HLSL才是高斯模糊的正解在UE5材质编辑器里拖几个“Blur”节点&#xff0c;调调Radius&#xff0c;预览框里画面立刻柔化——这确实是最快上手的方式。但上周我帮一个做影视级虚拟制片的团队优化镜头转场效果时&#xff0c…...

Spring Boot + MyBatis服务启动流程,新增代码跑通流程,映射规则,常见问题定位

一、服务启动流程 零代码&#xff08;仅需配置文件和依赖&#xff09;。 顺序固定&#xff0c;由框架保证。 一旦某个步骤失败&#xff08;如 XML 解析错误&#xff09;&#xff0c;整个启动失败。 二、新增代码跑通流程 全手动&#xff0c;需熟悉 MyBatis 映射规则、Spring…...