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 相关文章推荐
List the UTC Time on a Computer
Jun 11 Javascript
精心挑选的12款优秀的基于jQuery的手风琴效果插件和教程
Aug 22 Javascript
Jquery之Bind方法参数传递与接收的三种方法
Jun 24 Javascript
超炫的jquery仿flash导航栏特效
Nov 11 Javascript
jQuery实现鼠标滚轮动态改变样式或效果
Jan 05 Javascript
解决循环中setTimeout执行顺序的问题
Jun 20 Javascript
微信小程序如何获取手机验证码
Nov 04 Javascript
vue2.0中set添加属性后视图不能更新的解决办法
Feb 22 Javascript
js回文数的4种判断方法示例
Jun 04 Javascript
JavaScript链式调用原理与实现方法详解
May 16 Javascript
微信小程序用户授权最佳实践指南
May 08 Javascript
js中Map和Set的用法及区别实例详解
Feb 15 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
利用递归把多维数组转为一维数组的函数
2006/10/09 PHP
CentOS系统中PHP安装扩展的方式汇总
2017/04/09 PHP
用jQuery打造TabPanel效果代码
2010/05/22 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
2013/07/08 Javascript
jQuery+HTML5实现图片上传前预览效果
2015/08/20 Javascript
深入理解jquery中extend的实现
2016/12/22 Javascript
canvas实现图像截取功能
2017/02/06 Javascript
20行js代码实现的贪吃蛇小游戏
2017/06/20 Javascript
基于LayUI实现前端分页功能的方法
2017/07/22 Javascript
微信头像地址失效踩坑记附带解决方案
2019/09/23 Javascript
vue 解决异步数据更新问题
2019/10/29 Javascript
jQuery实现简单聊天室
2020/02/08 jQuery
openlayers4实现点动态扩散
2020/08/17 Javascript
python使用urllib模块开发的多线程豆瓣小站mp3下载器
2014/01/16 Python
python基础教程之对象和类的实际运用
2014/08/29 Python
Python实现的下载网页源码功能示例
2017/06/13 Python
Python3 适合初学者学习的银行账户登录系统实例
2017/08/08 Python
浅谈用Python实现一个大数据搜索引擎
2017/11/28 Python
python:接口间数据传递与调用方法
2018/12/17 Python
树莓派使用USB摄像头和motion实现监控
2019/06/22 Python
pandas分区间,算频率的实例
2019/07/04 Python
Python脚本去除文件的只读性操作
2020/03/05 Python
django模板获取list中指定索引的值方式
2020/05/14 Python
python字典的值可以修改吗
2020/06/29 Python
详解CSS3开启硬件加速的使用和坑
2017/08/21 HTML / CSS
css3实现的下拉菜单效果示例
2014/01/22 HTML / CSS
HTML5 canvas画图并保存成图片的jcanvas插件
2014/01/17 HTML / CSS
HTML5基于flash实现播放RTMP协议视频的示例代码
2020/12/04 HTML / CSS
本科应届生自荐信
2014/06/29 职场文书
我是一名护士演讲稿
2014/08/28 职场文书
教育合作协议范本
2014/10/17 职场文书
男方婚礼答谢词
2015/01/20 职场文书
幽灵公主观后感
2015/06/09 职场文书
交通安全主题班会
2015/08/12 职场文书
2016年社区文体活动总结
2016/04/06 职场文书
优秀的商业计划书,让融资一步到位
2019/05/07 职场文书