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 相关文章推荐
提升你网站水平的jQuery插件集合推荐
Apr 19 Javascript
JavaScript判断DOM何时加载完毕的技巧
Nov 11 Javascript
Jquery Uploadify多文件上传带进度条且传递自己的参数
Aug 28 Javascript
js 立即调用的函数表达式如何写
Jan 12 Javascript
JavaScript中的Math.E属性使用详解
Jun 12 Javascript
JavaScript中的Math.SQRT1_2属性使用简介
Jun 14 Javascript
jQuery基于ajax实现带动画效果无刷新柱状图投票代码
Aug 10 Javascript
基于AngularJS实现iOS8自带的计算器
Sep 12 Javascript
Vue 进阶教程之v-model详解
May 06 Javascript
jQuery.form.js的使用详解
Jun 14 jQuery
vue源码解析之事件机制原理
Apr 21 Javascript
解决vue-cli webpack打包后加载资源的路径问题
Sep 25 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
让你同时上传 1000 个文件 (一)
2006/10/09 PHP
php中simplexml_load_string使用实例分享
2014/02/13 PHP
PHP反向代理类代码
2014/08/15 PHP
PHP中抽象类、接口的区别与选择分析
2016/03/29 PHP
[原创]js与自动伸缩图片 自动缩小图片的多浏览器兼容的方法总结
2007/03/12 Javascript
js 数值项目的格式化函数代码
2010/05/14 Javascript
js date 格式化
2017/02/15 Javascript
JS字符串长度判断,超出进行自动截取的实例(支持中文)
2017/03/06 Javascript
JS正则获取HTML元素的方法
2017/03/31 Javascript
angular2 ng build部署后base文件路径问题详细解答
2017/07/15 Javascript
用vue封装插件并发布到npm的方法步骤
2017/10/18 Javascript
解决vue中使用Axios调用接口时出现的ie数据处理问题
2018/08/13 Javascript
bootstrap实现点击删除按钮弹出确认框的实例代码
2018/08/16 Javascript
Vue实现指令式动态追加小球动画组件的步骤
2020/12/18 Vue.js
[00:03]DOTA2新版本PA至宝展示
2014/11/19 DOTA
python处理二进制数据的方法
2015/06/03 Python
浅谈Python中列表生成式和生成器的区别
2015/08/03 Python
TensorFlow实现卷积神经网络CNN
2018/03/09 Python
python读取文本绘制动态速度曲线
2018/06/21 Python
Python模块的加载讲解
2019/01/15 Python
Python设计模式之简单工厂模式实例详解
2019/01/22 Python
树莓派与PC端在局域网内运用python实现即时通讯
2019/06/22 Python
使用Python画股票的K线图的方法步骤
2019/06/28 Python
python 伯努利分布详解
2020/02/25 Python
利用Python如何画一颗心、小人发射爱心
2021/02/21 Python
实例讲解CSS3中Transform的perspective属性的用法
2016/04/22 HTML / CSS
全球知名巧克力品牌:Godiva
2016/07/22 全球购物
应届生服装设计自我评价
2013/09/20 职场文书
运动会跳远加油稿
2014/02/20 职场文书
六五普法规划实施方案
2014/03/21 职场文书
自我鉴定总结
2014/03/24 职场文书
房产委托公证书
2014/04/08 职场文书
亲子活动总结
2014/04/26 职场文书
四风专项整治工作情况汇报
2014/10/28 职场文书
2015高三毕业寄语赠言
2015/02/27 职场文书
教师正风肃纪心得体会
2016/01/15 职场文书