ToB企服应用市场:ToB评测及商务社交产业平台

标题: 【前端】实现Vue组件页面跳转的多种方式 [打印本页]

作者: 火影    时间: 2024-8-31 19:53
标题: 【前端】实现Vue组件页面跳转的多种方式
前言

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

1. 内嵌

想要在Vue应用中内嵌一个外部网页,可以利用<iframe>标签
下面是一个示例:
  1. <template>
  2.   <div>
  3.     <!-- 在这里嵌入外部网页 -->
  4.     <iframe src="https://www.example.com" width="100%" height="500px" frameborder="0"></iframe>
  5.   </div>
  6. </template>
  7. <script>
  8. export default {
  9.   name: 'EmbeddedWebPage',
  10. }
  11. </script>
  12. <style scoped>
  13. /* 在这里添加样式 */
  14. </style>
复制代码
<iframe>标签的src属性设置为要嵌入的外部网页的URL

2. 跳转新页面

以下几个Demo方式都不大一样,可以细细品尝
别的如果链接无法跳转到外部链接,通常有以下几个缘故原由:

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

跳转到新的页面:
  1. <template>
  2.   <div>
  3.     <!-- 使用 <a> 标签跳转到外部链接 -->
  4.     <a href="http://example.com" target="_blank">跳转到外部链接</a>
  5.   </div>
  6. </template>
  7. <script>
  8. export default {
  9.   name: 'RedirectPage',
  10. }
  11. </script>
  12. <style scoped>
  13. /* 在这里添加样式 */
  14. </style>
复制代码

这样当用户点击链接时,欣赏器会打开一个新的标签页大概窗口,并跳转到指定的外部链接
不外这种方式必要双击最后才能继续跳转,有些鸡肋,有没有一步到位呢,也是有的!!
2.2 Demo2

想要实现直接跳转到外部链接,而不必要用户点击链接的操作
可以在 Vue 组件的 mounted 生命周期钩子函数中利用 JavaScript 来实现跳转
  1. <template>
  2.   <div>
  3.     <!-- 在页面加载时立即跳转到外部链接 -->
  4.   </div>
  5. </template>
  6. <script>
  7. export default {
  8.   name: 'RedirectPage',
  9.   mounted() {
  10.     // 在组件挂载后立即跳转到外部链接
  11.     window.location.href = "http://example.com";
  12.   }
  13. }
  14. </script>
  15. <style scoped>
  16. /* 在这里添加样式 */
  17. </style>
复制代码
当 Vue 组件被挂载到页面上后,mounted 生命周期钩子函数会被调用
在这个钩子函数中,利用 window.location.href 将页面立即跳转到指定的外部链接,比如 http://example.com。
这样,当用户访问这个 Vue 组件所在的页面时,页面会立即跳转到指定的外部链接,而不必要用户进行任何点击操作
2.3 Demo3

如果盼望用户返回上一个链接时停止跳转,可以利用 JavaScript 的 history 对象来管理欣赏器的历史记载,并在组件销毁时扫除添加的跳转
  1. <template>
  2.   <div>
  3.     <!-- 页面内容 -->
  4.   </div>
  5. </template>
  6. <script>
  7. export default {
  8.   name: 'RedirectPage',
  9.   mounted() {
  10.     // 在组件挂载后立即跳转到外部链接
  11.     this.redirectToExternalPage();
  12.   },
  13.   methods: {
  14.     redirectToExternalPage() {
  15.       // 跳转到外部链接
  16.       this.redirectHandler = setTimeout(() => {
  17.         window.location.href = "http://example.com";
  18.       }, 1000); // 1秒后跳转,可根据需求调整
  19.     }
  20.   },
  21.   beforeDestroy() {
  22.     // 组件销毁时清除跳转操作
  23.     if (this.redirectHandler) {
  24.       clearTimeout(this.redirectHandler);
  25.     }
  26.   }
  27. }
  28. </script>
  29. <style scoped>
  30. /* 在这里添加样式 */
  31. </style>
复制代码
利用了 setTimeout 函数来延迟跳转到外部链接,以便用户偶然间返回上一个链接
可以根据必要调整延迟时间,特殊是在组件销毁时,利用 beforeDestroy 生命周期钩子函数来扫除跳转操作,以防止在用户返回上一个链接时继续跳转
3. 拓展

页面不跳转,甚至出现如下报错:app.js:978 Error: Cannot find module './views/equipment/inner/tech-data/index.vue'
可能是因为文件路径设置不准确大概文件确实不存在导致的
可以按照以下步骤检查和办理问题:

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4