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 相关文章推荐
Add Formatted Text to a Word Document
Jun 15 Javascript
分别用marquee和div+js实现首尾相连循环滚动效果,仅3行代码
Sep 21 Javascript
Js保留小数点的4种效果实现代码分享
Apr 12 Javascript
移动设备web开发首选框架:zeptojs介绍
Jan 29 Javascript
javascript jquery对form元素的常见操作详解
Jun 12 Javascript
简单实现jQuery弹幕效果
May 06 jQuery
JavaScript实现简单的双色球(实例讲解)
Jul 31 Javascript
Vue 实时监听窗口变化 windowresize的两种方法
Nov 06 Javascript
vue和better-scroll实现列表左右联动效果详解
Apr 29 Javascript
es6中使用map简化复杂条件判断操作实例详解
Feb 19 Javascript
JS 5种遍历对象的方式
Jun 16 Javascript
Vue切换div显示隐藏,多选,单选代码解析
Jul 14 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导入csv文件碰到乱码问题的解决方法
2014/02/10 PHP
ThinkPHP实现非标准名称数据表快速创建模型的方法
2014/11/29 PHP
WAMP环境中扩展oracle函数库(oci)
2015/06/26 PHP
通过javascript的匿名函数来分析几段简单有趣的代码
2010/06/29 Javascript
JavaScript栏目列表隐藏/显示简单实现
2013/04/03 Javascript
javascript中interval与setTimeOut的区别示例介绍
2014/03/14 Javascript
防止Node.js中错误导致进程阻塞的办法
2016/08/11 Javascript
AngularJS应用开发思维之依赖注入3
2016/08/19 Javascript
JSONP和批量操作功能的实现方法
2016/08/21 Javascript
自动适应iframe右边的高度
2016/12/22 Javascript
Node.js服务器开启Gzip压缩教程
2017/08/11 Javascript
基于iview的router常用控制方式
2019/05/30 Javascript
Nodejs监听日志文件的变化的过程解析
2019/08/04 NodeJs
LayUI switch 开关监听 获取属性值、更改状态的方法
2019/09/21 Javascript
JavaScript 作用域实例分析
2019/10/02 Javascript
微信小程序实现倒计时功能
2020/11/19 Javascript
javascript局部自定义鼠标右键菜单
2020/12/08 Javascript
[04:39]显微镜下的DOTA2第十三期—Pis卡尔个人秀
2014/04/04 DOTA
python通过pil将图片转换成黑白效果的方法
2015/03/16 Python
好用的Python编辑器WingIDE的使用经验总结
2016/08/31 Python
Python实现字典(dict)的迭代操作示例
2018/06/05 Python
Python使用pymysql从MySQL数据库中读出数据的方法
2018/07/25 Python
Python 中导入csv数据的三种方法
2018/11/01 Python
python进行文件对比的方法
2018/12/24 Python
解决python线程卡死的问题
2019/02/18 Python
浅析Python 读取图像文件的性能对比
2019/03/07 Python
Django中使用MySQL5.5的教程
2019/12/18 Python
Python析构函数__del__定义原理解析
2020/11/20 Python
python中PyQuery库用法分享
2021/01/15 Python
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
个性发展自我评价
2014/02/11 职场文书
人大代表选举标语
2014/10/07 职场文书
师德承诺书2015
2015/04/28 职场文书
《只有一个地球》教学反思
2016/02/16 职场文书
python用海龟绘图写贪吃蛇游戏
2021/06/18 Python
MySQL高级进阶sql语句总结大全
2022/03/16 MySQL