vue 实现tab切换保持数据状态


Posted in Javascript onJuly 21, 2020

页面做tab切换,由于组件每一次切换都会重新实例化组件,我们想要页面不论怎么切换都仍然保持tab里面的内容不会刷新,减少页面重新渲染以及减少请求

实现方法:使用<keep-alive></keep-alive>包裹组件

<el-tabs v-model="activeName" @tab-click="handleClick">
 <el-tab-pane label="记录">
 <keep-alive>
  <child1 v-if="isChildUpdate"></child1>
 </keep-alive>
 </el-tab-pane>
</el-tabs>

列表页面跳转详情 ,列表页面保持上一次操作状态

通过是否加载router-view 和路由元meta设置页面是否需要缓存来实现

vue 实现tab切换保持数据状态

router-view嵌套多层的话,可能要设置多层,然后通过beforeRouteLeave监听路由离开,设置是否缓存

vue 实现tab切换保持数据状态

//从其他页面跳转不需要缓存页面 从详情页面回来则需要缓存

补充知识:vue 动态组件(tabs切换)keep-alive:主要用于保留组件状态或避免重新渲染

通过keep-alive 保留数据值 填写数据时切换到其他页面,后返回当前页数据保留 ,主要用于保留组件状态或避免重新渲染

<!--动态组件-component使用-->
 <div class="app">
 <ul>
  <li @click="currView='home'">首页</li>
  <li @click="currView='abount'">关于我们</li>
 </ul>
 <!--通过keep-alive 保留数据值 填写数据时切换到其他页面,后返回当前页数据保留-->
 <keep-alive>
  <component :is="currView"></component>
 </keep-alive>
 </div>
<script type="text/x-Template" id="homeTemp">
   <h2>首页数据</h2>
</script>
<script type="text/x-Template" id="abountTemp">
   <h2>关于我们数据<input type="text"/></h2>
</script>
<script type="text/javascript">
 var vm=new Vue({
  el:'.app',
  data:{
   currView:"home"
  },
  components:{
   "home":{
     template:"#homeTemp"
   },
   "abount":{
    template:"#abountTemp"
   }
  }
 });
 
</script>

vue 实现tab切换保持数据状态

以上这篇vue 实现tab切换保持数据状态就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
!DOCTYPE声明对JavaScript的影响分析
Apr 12 Javascript
JavaScript的parseInt 取整使用
May 09 Javascript
js实现完全自定义可带多级目录的网页鼠标右键菜单方法
Feb 28 Javascript
js上传图片及预览功能实例分析
Apr 24 Javascript
Bootstrap源码解读网格系统(3)
Dec 22 Javascript
jQuery插件Echarts实现的双轴图效果示例【附demo源码下载】
Mar 04 Javascript
JS获取鼠标坐标并且根据鼠标位置不同弹出不同内容
Jun 12 Javascript
详解webpack + vue + node 打造单页面(入门篇)
Sep 23 Javascript
JS实现的简单拖拽购物车功能示例【附源码下载】
Jan 03 Javascript
详解Vue单元测试Karma+Mocha学习笔记
Jan 31 Javascript
解决微信小程序中转换时间格式IOS不兼容的问题
Feb 15 Javascript
js实现录音上传功能
Nov 22 Javascript
vue通过过滤器实现数据格式化
Jul 20 #Javascript
原生JavaScript写出Tabs标签页的实例代码
Jul 20 #Javascript
解决echarts 一条柱状图显示两个值,类似进度条的问题
Jul 20 #Javascript
简单了解前端渐进式框架VUE
Jul 20 #Javascript
基于VSCode调试网页JavaScript代码过程详解
Jul 20 #Javascript
一文读懂vue动态属性数据绑定(v-bind指令)
Jul 20 #Javascript
在Vue 中实现循环渲染多个相同echarts图表
Jul 20 #Javascript
You might like
PHP使用Alexa API获取网站的Alexa排名例子
2014/06/12 PHP
php数组使用规则分析
2015/02/27 PHP
php解析xml 的四种简单方法(附实例)
2016/07/11 PHP
Laravel 5.4重新登录实现跳转到登录前页面的原理和方法
2017/07/13 PHP
js控制href内容的连接内容的变化示例
2014/04/30 Javascript
对之前写的jquery分页做下升级
2014/06/19 Javascript
js实现点击图片改变页面背景图的方法
2015/02/28 Javascript
JS定时器使用,定时定点,固定时刻,循环执行详解
2016/05/31 Javascript
浅谈angular2的http请求返回结果的subcribe注意事项
2017/03/01 Javascript
Web开发中客户端的跳转与服务器端的跳转的区别
2017/03/05 Javascript
简单实现js鼠标跟随效果
2020/08/02 Javascript
Three.js入门之hello world以及如何绘制线
2017/09/25 Javascript
浅谈VUE防抖与节流的最佳解决方案(函数式组件)
2019/05/22 Javascript
小程序如何构建骨架屏
2019/05/29 Javascript
vue.js 2.0实现简单分页效果
2019/07/29 Javascript
nodejs实现百度舆情接口应用示例
2020/02/07 NodeJs
[01:00:10]完美世界DOTA2联赛PWL S2 FTD vs Inki 第二场 11.21
2020/11/24 DOTA
简单介绍Python中的readline()方法的使用
2015/05/24 Python
Python实现Windows上气泡提醒效果的方法
2015/06/03 Python
Python生成随机数组的方法小结
2017/04/15 Python
关于pip的安装,更新,卸载模块以及使用方法(详解)
2017/05/19 Python
Python多线程扫描端口代码示例
2018/02/09 Python
python自动化生成IOS的图标
2018/11/13 Python
Python3中的最大整数和最大浮点数实例
2019/07/09 Python
Python使用Slider组件实现调整曲线参数功能示例
2019/09/06 Python
Django连接数据库并实现读写分离过程解析
2019/11/13 Python
Python如何给函数库增加日志功能
2020/08/04 Python
.NET面试问题集
2015/12/08 面试题
《歌唱二小放牛郎》教学反思
2014/04/19 职场文书
舞蹈专业求职信
2014/06/13 职场文书
上班时间打瞌睡检讨书
2014/09/26 职场文书
2015年信访维稳工作总结
2015/04/07 职场文书
信仰纪录片观后感
2015/06/08 职场文书
Java 语言中Object 类和System 类详解
2021/07/07 Java/Android
javascript的setTimeout()使用方法总结
2021/11/20 Javascript
python+pytest接口自动化之token关联登录的实现
2022/04/06 Python