vue.js - window.addEventListener('load', (event) => {...}); 在 NuxtLink (nuxt-link) 或 RouterLink (router-link) 点击
问题描述
我将使用最简单的例子来解释我的意思。
window.addEventListener('load', (event) => {
console.log('page is fully loaded');
});
当页面首次加载时,客户端控制台会记录“页面已完全加载”。但是,当我单击 NuxtLink 或 RouterLink 时,我没有收到新页面加载的重复日志条目。
如果我使用标准链接,那么控制台会在我访问的页面上记录“页面已完全加载”,这是应该的。但它没有 NuxtLink 或 RouterLink 所完成的快速页面加载。
在 Rails 中,它有一个类似的功能称为 Turbolinks,但您可以使用它.on('page:load',...
来抓取每个页面加载。
有谁知道如何触发每页加载的窗口加载?
解决方案
<nuxt-link>
组件类似于<router-link>
组件。
在 HTML5 历史模式下,router-link
会拦截点击事件,使浏览器不会尝试重新加载页面。这意味着onload
只有在首次加载应用程序时才会触发。
如果每次链接到新路由时都需要刷新和加载页面,可以这样做:
window.location.href = 'your link'
通过以这种方式链接到页面,您可以从浏览器控制台的网络面板中找到每次text/html
从服务器加载类型页面时。
推荐阅读
- javascript - 从 Dynamo Db 获取位置坐标并在 Google 地图上显示多个标记
- node.js - chrome中的节点检查不显示源文件
- android - 使用 wifi 网络可以正常工作,但不能使用移动网络
- php - 如何在我的代码中使用密码验证更正错误
- node.js - 尝试从 vscode 调试 heroku nodejs 时出现“套接字挂断”
- sed - 替换文件内容以数字开头)并保留其余的行内容
- python - 如何从浮动列表中包含具有特定条件的列表
- git - 如何推送在另一个分支中修改的更改?
- hyperledger-composer - 如何在 Hyperledger 作曲家的交易中获取调用交易的人的身份?
- java - 如何在java中存储执行操作的时间