vue单页面实现路由跳转后保留原页面数据

这篇具有很好参考价值的文章主要介绍了vue单页面实现路由跳转后保留原页面数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

应用场景

有时候在路由跳转后,返回原页面时需要保留之前的数据,即不销毁页面。

解决办法

页面的缓存,需要用到vue的内置组件keep-alive,来缓存列表页面,同时配合路由选项来更改页面的数据。

在设置keep-alive缓存的组件中,首次进入组件,会一次调用组件的钩子函数:created --> mounted -->activated 再次进入时,只触发activated钩子函数

具体步骤

1.在路由出口(APP.vue)渲染组件时配置:

<keep-alive>
      <router-view v-if="$route.meta.keepAlive" class="router-view">
      </router-view>
 </keep-alive>
 <router-view v-if="!$route.meta.keepAlive" class="router-view" ></router-view>

2.在路由选项中,配置meta属性,keepAlive为true即为需要缓存的组件,同时设置isBack属性,用来标示页面是否是从详情页面返回的。

{
     name: '首页',
     path: 'index',
     component: Index,
     meta: {
        keepAlive: true, 
        isBack: false
          }
},

3.在组件实例中,通过beforeRouteEnter(to, from, next)路由守卫,来判断路由是跳转到哪去或者从哪里跳转回来的,则将当前路由对象的meta.isBack 设置为true,否则设为false

beforeRouteEnter(to, from, next) {
        if (from.path == "/detail") {
          to.meta.isBack = true;
        } else {
          to.meta.isBack = false;
        }
        next();
      },

4.实现组件之间的通信,可以使用eventBus,在vue里面可以用vuebus

具体步骤参考$bus使用

该步骤可以让一个组件里的值传到另一个组件里,不需要父子关系。但是有可能出现页面销毁导致事件监听失败传不了值。所以用到了上面的方法。文章来源地址https://www.toymoban.com/news/detail-550017.html

到了这里,关于vue单页面实现路由跳转后保留原页面数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 020:vue刷新跳转当前页面

    第020个 查看专栏目录: VUE ------ element UI 在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。 (1)提供vue2的一些基本操作:安装、引用,模板使用,computed,watch,生命周期(beforeCreate,created,beforeMount,mounted, beforeUpdate,upda

    2024年02月09日
    浏览(40)
  • vue3.0+element Plus实现页面布局,侧边栏菜单路由跳转

    一. 先在router.js文件中配置路由,将侧边栏中需要跳转的页面都添加到children中 二. 在view目录下新建一个文件,里面包含侧边栏要跳转的页面 三.  页面样式布局 1. 我选择使用自定义组件BaseLayout.vue文件来设置header和aside样式显示 也可以使用element plus中的Container 布局容器 

    2024年02月13日
    浏览(50)
  • 「Vue|网页开发|前端开发」02 从单页面到多页面网站:使用路由实现网站多个页面的展示和跳转

    本文主要介绍如何使用路由控制来实现将一个单页面网站扩展成多页面网站,包括页面扩展的逻辑,vue的官方路由vue-router的基本用法以及扩展用法 「Vue|网页开发|前端开发」01 快速入门:快速写一个Vue的HelloWorld项目 我们在进行网站开发的时候,大多数都是需要有多个页面

    2024年02月11日
    浏览(48)
  • 【微信小程序】通过使用 wx.navigateTo方法进行页面跳转,跳转后的页面中通过一些方式回传值给原页面

    以下是几种常见的回传值的方式: 使用 wx.navigateTo 方法传递参数: 在跳转时,可以在目标页面的 URL 中携带参数,然后在目标页面的 onLoad 方法中获取参数,并在目标页面中进行处理。例如: 在目标页面的 onLoad 方法中获取参数: 使用 wx.navigateBack 方法回传值: 在目标页面中

    2024年02月13日
    浏览(61)
  • Vue3 - 实现路由 “新开一页“ 进行页面跳转功能,Router 路由跳转时在新窗口打开页面(网站跳转页面时浏览器新开页签打开网页,支持在页面、纯 js/ts 文件中使用,详细示例代码教程)

    网上这方面教程很少,本文提供多种解决方案,适用于任何场景。 本文 实现了在 vue3 项目开发中,当页面跳转时浏览器打开新窗口(新页签)跳转,Router 路由跳转并新开一页教程, 无论您是在普通页面、纯 js/ts 文件中,都可以使用, 如下图所示,当执行路由跳转时浏览器

    2024年02月03日
    浏览(66)
  • Selenium页面跳转后的元素定位-switch_to.window()使用

    在使用Selenium获取网页数据时常常会因为页面跳转导致,后续的页面数据无法正常获取。究极原因,都是因为此时的页面对象还是上一个页面,使用当前页面的定位条件当然会报错(因为上一个页面根本不存在这些定位条件)。因此我们可以通过switch_to.window()进行页面的切换

    2023年04月09日
    浏览(46)
  • vue2路由跳转页面

    前端工作笔记之---页面路由跳转vue2 前言 1.安装vue-router 2.配置路由 在src文件夹下创建router文件夹,然后在router文件夹下创建index.js文件,如下图 在index.js文件夹中进行配置  在src文件夹下创建view文件夹,在里边放路由文件,如下图  在main.js文件中注册路由 接下来就是使用啦

    2024年02月06日
    浏览(39)
  • js:保留当前页面,打开一个非tab页面

    一、关闭当前页面,打开新的页面 (1)方法一:利用超链接a (2)方法二:利用js来跳转页面——(在同当前窗口中打开窗口) 二、保留当前页面,打开一个新的tab页面 (1)方法一:利用超链接 (2)方法二:利用js打开新页面(在另外新建窗口中打开窗口) window.open(“

    2024年02月16日
    浏览(41)
  • vue保留用户在列表的操作记录, beforeRouteLeave离开当前组件缓存数据即可

    最近遇到一个需求,用户在列表页的查询输入框输入条件后,点击查询,然后此时切换菜单,再回到之前的页面,希望能停留在上一次输入的结果上,如下例子,用户管理页面,输入yangfan这个搜索后,结果如下图: 当我此时点击权限管理后,再点击用户管理切回来,

    2024年02月21日
    浏览(40)
  • Vue路由跳转传参或打开新页面跳转

    1. 通过路由中的name属性  使用 params 传递参数, 使用 this.$route.params 获取参数 这种方式传递相当于 post 请求, 传递的数据不会显示在 url 地址栏,但是页面刷新,参数会丢失 1 2 3 4 5 6 7 8 9 // 传递参数 this .$router.push({      name: \\\"首页\\\" ,      params: {          code: 1      } })

    2024年02月07日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包