【前端】实现Vue组件页面跳转的多种方式

news2025/1/19 2:34:54

目录

  • 前言
  • 1. 内嵌
  • 2. 跳转新页面
    • 2.1 Demo1
    • 2.2 Demo2
    • 2.3 Demo3
  • 3. 拓展

前言

通过某个Button让页面多种方式跳转

在这里插入图片描述

1. 内嵌

想要在Vue应用中内嵌一个外部网页,可以使用<iframe>标签

下面是一个示例:

<template>
  <div>
    <!-- 在这里嵌入外部网页 -->
    <iframe src="https://www.example.com" width="100%" height="500px" frameborder="0"></iframe>
  </div>
</template>

<script>
export default {
  name: 'EmbeddedWebPage',
}
</script>

<style scoped>
/* 在这里添加样式 */
</style>

<iframe>标签的src属性设置为要嵌入的外部网页的URL

  • 可以调整widthheight属性来设置iframe的大小

  • frameborder属性用于设置是否显示边框,设置为"0"表示不显示边框

2. 跳转新页面

以下几个Demo方式都不大一样,可以细细品尝

另外如果链接无法跳转到外部链接,通常有以下几个原因:

  • 安全策略限制:浏览器的安全策略可能阻止了在某些情况下跳转到外部链接,尤其是在一些网页中加载了外部脚本或者使用了一些特定的安全设置时

  • Vue Router 拦截:如果 Vue 项目使用了 Vue Router,并且点击的链接是一个标准的超链接(<a> 标签),Vue Router 会尝试拦截这个跳转,并尝试在单页面应用中进行路由跳转
    为了避免这种情况,可以将链接设置为外部链接,并使用 target="_blank" 属性来在新窗口中打开链接,这样就不会被 Vue Router 拦截

  • 路由模式设置:如果在 Vue Router 中使用了 history 模式,并且服务器端没有正确配置,可能会导致在浏览器地址栏输入外部链接时出现404错误
    在这种情况下,需要确保服务器端已经正确配置了路由,以确保在直接访问外部链接时能够正确跳转

  • 浏览器插件或扩展:某些浏览器插件或扩展可能会干扰页面的跳转行为
    可以尝试在不同的浏览器或者在无插件的情况下测试链接是否正常跳转

检查这些问题可能会找到问题所在

2.1 Demo1

跳转到新的页面:

<template>
  <div>
    <!-- 使用 <a> 标签跳转到外部链接 -->
    <a href="http://example.com" target="_blank">跳转到外部链接</a>
  </div>
</template>

<script>
export default {
  name: 'RedirectPage',
}
</script>

<style scoped>
/* 在这里添加样式 */
</style>
  • <a> 标签的 href 属性指定了外部链接的地址,比如 http://example.com

  • target="_blank" 属性告诉浏览器在新的标签页或者窗口打开链接

这样当用户点击链接时,浏览器会打开一个新的标签页或者窗口,并跳转到指定的外部链接

不过这种方式需要双击最后才能继续跳转,有些鸡肋,有没有一步到位呢,也是有的!!

2.2 Demo2

想要实现直接跳转到外部链接,而不需要用户点击链接的操作

可以在 Vue 组件的 mounted 生命周期钩子函数中使用 JavaScript 来实现跳转

<template>
  <div>
    <!-- 在页面加载时立即跳转到外部链接 -->
  </div>
</template>

<script>
export default {
  name: 'RedirectPage',
  mounted() {
    // 在组件挂载后立即跳转到外部链接
    window.location.href = "http://example.com";
  }
}
</script>

<style scoped>
/* 在这里添加样式 */
</style>

当 Vue 组件被挂载到页面上后,mounted 生命周期钩子函数会被调用

在这个钩子函数中,使用 window.location.href 将页面立即跳转到指定的外部链接,比如 http://example.com。

这样,当用户访问这个 Vue 组件所在的页面时,页面会立即跳转到指定的外部链接,而不需要用户进行任何点击操作

2.3 Demo3

如果希望用户返回上一个链接时停止跳转,可以使用 JavaScript 的 history 对象来管理浏览器的历史记录,并在组件销毁时清除添加的跳转

<template>
  <div>
    <!-- 页面内容 -->
  </div>
</template>

<script>
export default {
  name: 'RedirectPage',
  mounted() {
    // 在组件挂载后立即跳转到外部链接
    this.redirectToExternalPage();
  },
  methods: {
    redirectToExternalPage() {
      // 跳转到外部链接
      this.redirectHandler = setTimeout(() => {
        window.location.href = "http://example.com";
      }, 1000); // 1秒后跳转,可根据需求调整
    }
  },
  beforeDestroy() {
    // 组件销毁时清除跳转操作
    if (this.redirectHandler) {
      clearTimeout(this.redirectHandler);
    }
  }
}
</script>

<style scoped>
/* 在这里添加样式 */
</style>

使用了 setTimeout 函数来延迟跳转到外部链接,以便用户有时间返回上一个链接

可以根据需要调整延迟时间,特别是在组件销毁时,使用 beforeDestroy 生命周期钩子函数来清除跳转操作,以防止在用户返回上一个链接时继续跳转

3. 拓展

页面不跳转,甚至出现如下报错:app.js:978 Error: Cannot find module './views/equipment/inner/tech-data/index.vue'

可能是因为文件路径配置不正确或者文件确实不存在导致的

可以按照以下步骤检查和解决问题:

  1. 确认文件路径: 确保在你的项目目录中存在./views/equipment/inner/tech-data/index.vue文件。可以手动在文件系统中查找确认。

  2. 检查文件名和路径: 确保在路由配置中使用的文件路径与实际文件路径一致。即确保在PageRouter或ViewsRouter中的路由配置中,component属性的值指向了正确的文件路径。

  3. 检查文件导入: 如果文件确实存在,那么可能是文件导入的问题
    在确保文件路径正确的前提下,检查在PageRouter或ViewsRouter中导入组件的语句是否正确。确保导入路径和实际文件路径一致。

  4. 文件名大小写: 确保文件名的大小写与实际文件名匹配。在某些操作系统中,文件名的大小写是敏感的,因此确保在路由配置中使用的文件名与实际文件名大小写一致。

  5. 重新安装依赖: 如果以上步骤都没能解决问题,尝试重新安装项目的依赖
    可以通过删除node_modules文件夹并重新运行npm install来实现

  6. 检查编译过程: 如果使用了构建工具如Webpack等,确保构建过程中能够正确地解析和打包Vue组件

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

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

相关文章

C语言一招教你搞定所有基础函数知识(上)

1.前言 Hello&#xff0c;大家好&#xff0c;我是小陈&#xff0c;新年快乐呀&#xff01;马上就龙年了&#xff0c;今天是大年30&#xff0c;祝各位新的一年更上一层楼&#xff0c;今天小陈为大家带来了C语言的函数基础知识&#xff0c;希望大家仔细看完。 2.函数的概念 何…

数据库切片大对决:ShardingSphere与Mycat技术解析

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 数据库切片大对决&#xff1a;ShardingSphere与Mycat技术解析 前言ShardingSphere与Mycat简介工作原理对比功能特性对比 前言 在数据库的舞台上&#xff0c;有两位颇受欢迎的明星&#xff0c;它们分别…

Unity入门学习

目录 Unity环境搭建Unity引擎是什么软件下载和安装工程文件夹 Unity界面基础Scene场景和Hierarchy层级窗口Game游戏和Project工程Inspector和Console工具栏和父子关系 Unity工作原理反射机制和游戏场景预设体和资源包的导入导出 Unity脚本基础脚本基本规则生命周期函数Inspecto…

Aethir和Well-Link Tech携手革新云游戏,释放人工智能(AI)潜力

​Aethir将为Well-Link Tech的2亿用户提供先进的GPU计算能力&#xff0c;大幅提升他们的游戏体验。 新加坡&#xff0c;2024年2月7日 - 先驱性的去中心化GPU网络Aethir与实时云渲染技术领导者Well-Link Tech携手共创云游戏和元宇宙发展的新时代。 借助Well-Link Tech对领先游戏…

算法---回溯(正文)

1.什么是回溯&#xff1f; 回溯算法的定义就是和暴力枚举一样枚举所有可能并加撤回&#xff0c;也能和暴力一样去掉一些重复&#xff08;在之前就被筛出&#xff0c;但还要枚举这个&#xff0c;我们可以跳过这个了---------这个就是回溯剪枝&#xff09;。但为什么回溯不是暴力…

分享90个行业PPT,总有一款适合您

分享90个行业PPT&#xff0c;总有一款适合您 90个行业PPT下载链接&#xff1a;https://pan.baidu.com/s/1bHvhk_42-IFAjNdjPPtMZw?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不易…

【蓝桥杯冲冲冲】Prime Gift

【蓝桥杯冲冲冲】Prime Gift 蓝桥杯备赛 | 洛谷做题打卡day31 文章目录 蓝桥杯备赛 | 洛谷做题打卡day31Prime Gift题面翻译题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 样例 #2样例输入 #2样例输出 #2 提示题解代码我的一些话 Prime Gift 题面翻译 给你 n n n 个…

自适应二次元404页面源码

自适应二次元404页面源码&#xff0c;HTMLCSSJS,喜欢二次元的朋友可以下载使用 蓝奏云&#xff1a;https://wfr.lanzout.com/iuPNQ1ns7dxg

Linux网络编程——udp套接字

本章Gitee地址&#xff1a;udp套接字 文章目录 创建套接字绑定端口号读取数据发送数据聊天框输入框 创建套接字 #include <sys/types.h> #include <sys/socket.h> int socket(int domain, int type, int protocol);int domain参数&#xff1a;表面要创建套接字的域…

ElasticSearch之倒排索引

写在前面 本文看下es的倒排索引相关内容。 1&#xff1a;正排索引和倒排索引 正排索引就是通过文档id找文档内容&#xff0c;而倒排索引就是通过文档内容找文档id&#xff0c;如下图&#xff1a; 2&#xff1a;倒排索引原理 假定我们有如下的数据&#xff1a; 为了建立倒…

Day7.

使用QT编写一个简单QQ登录界面 widget.c #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui->setupUi(this);this->setWindowIcon(QIcon(":/pictrue/qq.png"));ui-&…

github使用问题汇总

1. Permission denied 1.1. 问题描述 Permission denied (publickey). fatal: Could not read from remote repository. 1.2. 解决方法 生成公钥 ssh-keygen -t ed25519 -C "your_emailexample.com" 点击回车三次 Generating public/private ed25519 key pair. …

从RSA角度出发解析JWT原理

文章目录 一、JWT介绍1. JWT组成部分2. 头部&#xff08;Header&#xff09;3. 载荷&#xff08;Payload&#xff09;4. 签名&#xff08;Signature&#xff09; 二、深入理解JWT签名验证1. 签名生成2. 签名验证3. 为什么JWT是安全的 三、如何验证JWT是否有效四、 Why JWT&…

【Docker进阶】镜像制作-用Dockerfile制作镜像(一)

进阶一 docker镜像制作 文章目录 进阶一 docker镜像制作用dockerfile制作镜像dockerfile是什么dockerfile格式为什么需要dockerfileDockerfile指令集合FROMMAINTAINERLABELCOPYENVWORKDIR 用dockerfile制作镜像 用快照制作镜像的缺陷&#xff1a; 黑盒不可重复臃肿 docker…

5G智能卷烟工厂数字孪生可视化平台,推进烟草行业数字化转型

5G智能卷烟工厂数字孪生可视化平台&#xff0c;推进烟草行业数字化转型。随着5G技术的不断发展&#xff0c;智能卷烟工厂数字孪生可视化平台成为了推进烟草行业数字化转型的重要手段。该平台将5G技术与数字孪生技术相结合&#xff0c;实现了对卷烟生产全过程的实时监控、数据分…

基于 Python 的漏洞扫描系统,附源码

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

计算机网络-流量控制(数据链路层的流量控制及与传输层流量控制的区别 流量控制的方法 可靠传输,滑动窗口,流量控制三者关系)

文章目录 数据链路层的流量控制及与传输层流量控制的区别流量控制的方法各方法对应的发生窗口和接收窗口大小 可靠传输&#xff0c;滑动窗口&#xff0c;流量控制三者关系小结 数据链路层的流量控制及与传输层流量控制的区别 端到端&#xff1a;两个主机之间的 点对点&#xf…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Slider组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之Slider组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Slider组件 滑动条组件&#xff0c;通常用于快速调节设置值&#xff0c;如音量调…

PKI - 借助Nginx 实现Https 服务端单向认证、服务端客户端双向认证

文章目录 Openssl操系统默认的CA证书的公钥位置Nginx Https 自签证书Nginx Https 使用CA签发证书客户端使用自签证书供服务端验证客户端使用 根证书 签发客户端证书 供服务端验证 Openssl https://www.openssl.net.cn/ openssl是一个功能丰富且自包含的开源安全工具箱。 它提…

Python算法题集_删除链表的倒数第 N 个结点

Python算法题集_删除链表的倒数第 N 个结点 题19&#xff1a;删除链表的倒数第 N 个结点1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【二次遍历】2) 改进版一【快慢指针】3) 改进版二【列表裁剪】 4. 最优算法 本文为Python算法题集之一的代…