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 相关文章推荐
window.location.href中url中数据量太大时的解决方法
Dec 23 Javascript
查找Oracle高消耗语句的方法
Mar 22 Javascript
JS中产生20位随机数以0-9为例也可以是a-z A-Z
Aug 01 Javascript
JavaScript中的pow()方法使用详解
Jun 15 Javascript
jQuery中通过ajax调用webservice传递数组参数的问题实例详解
May 20 Javascript
10分钟掌握XML、JSON及其解析
Dec 06 Javascript
JS实现的系统调色板完整实例
Dec 21 Javascript
详解如何提高 webpack 构建 Vue 项目的速度
Jul 03 Javascript
基于 Vue.js 之 iView UI 框架非工程化实践记录(推荐)
Nov 21 Javascript
layer.msg()去掉默认时间,实现手动关闭的方法
Sep 12 Javascript
JS桶排序的简单理解与实现方法示例
Nov 25 Javascript
vue实现输入一位数字转汉字功能
Dec 13 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 Header用于页面跳转要注意的几个问题总结
2008/10/03 PHP
使用PHP计算两个路径的相对路径
2013/06/14 PHP
PHP return语句的另一个作用
2014/07/30 PHP
laravel 5 实现模板主题功能
2015/03/02 PHP
PHP实现将base64编码字符串转换成图片示例
2018/06/22 PHP
JS定时器实例详细分析
2013/10/11 Javascript
jQuery Mobile 导航栏代码
2013/11/01 Javascript
js跳转页面方法总结
2014/01/29 Javascript
Jquery实现textarea根据文本内容自适应高度
2015/04/03 Javascript
JS中捕获console.log()输出的方法
2015/04/16 Javascript
javascript同步服务器时间和同步倒计时小技巧
2015/09/24 Javascript
angularjs学习笔记之三大模块(modal,controller,view)
2015/09/26 Javascript
Bootstrap每天必学之栅格系统(布局)
2015/11/25 Javascript
详解JavaScript的表达式与运算符
2015/11/30 Javascript
jQuery简单实现仿京东分类导航层效果
2016/06/07 Javascript
浅谈jquery中使用canvas的问题
2016/10/10 Javascript
如何在Angular.JS中接收并下载PDF
2016/11/26 Javascript
详解Angularjs在控制器(controller.js)中使用过滤器($filter)格式化日期/时间实例
2017/02/17 Javascript
vue-infinite-loading2.0 中文文档详解
2018/04/08 Javascript
vue动态循环出的多个select出现过的变为disabled(实例代码)
2019/11/10 Javascript
vue 解决provide和inject响应的问题
2020/11/12 Javascript
[42:35]2018DOTA2亚洲邀请赛3月30日 小组赛A组 VG VS OpTic
2018/03/31 DOTA
python3.3实现乘法表示例
2014/02/07 Python
介绍Python的@property装饰器的用法
2015/04/28 Python
python使用Apriori算法进行关联性解析
2017/12/21 Python
PyQt5每天必学之组合框
2018/04/20 Python
django 利用Q对象与F对象进行查询的实现
2020/05/15 Python
基于CSS3的CSS 多栏(Multi-column)实现瀑布流源码分享
2014/06/11 HTML / CSS
HTML5的革新 结构之美
2011/06/20 HTML / CSS
美国知名的家庭连锁百货商店:Boscov’s
2017/07/27 全球购物
在C中是否有模拟继承等面向对象程序设计特性的好方法
2012/05/22 面试题
迟到早退检讨书
2014/02/10 职场文书
五年级学生评语
2014/04/22 职场文书
六一活动主持词
2015/06/30 职场文书
python 爬取哔哩哔哩up主信息和投稿视频
2021/06/07 Python
Java中的Kafka为什么性能这么快及4大核心详析
2022/09/23 Java/Android