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 相关文章推荐
自己的js工具 Event封装
Aug 21 Javascript
jquery zTree异步加载简单实例分享
Feb 05 Javascript
JS 实现导航栏悬停效果(续)
Sep 24 Javascript
Ajax局部更新导致JS事件重复触发问题的解决方法
Oct 14 Javascript
基于JavaScript获取鼠标位置的各种方法
Dec 16 Javascript
JavaScript进阶练习及简单实例分析
Jun 03 Javascript
jQuery ajaxForm()的应用
Oct 14 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
Nov 23 Javascript
vue2.0设置proxyTable使用axios进行跨域请求的方法
Oct 19 Javascript
vue多个元素的样式选择器问题
Nov 29 Javascript
微信小程序以7天为周期连续签到7天功能效果的示例代码
Aug 20 Javascript
微信小程序实现单个或多个倒计时功能
Nov 01 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 登录记住密码实现思路
2013/05/07 PHP
深入解析Laravel5.5中的包自动发现Package Auto Discovery
2017/09/13 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
PHP数组与字符串互相转换实例
2020/05/05 PHP
js停止输出代码
2008/07/20 Javascript
jquery checkbox实现单选小例
2013/11/27 Javascript
轻松创建nodejs服务器(10):处理上传图片
2014/12/18 NodeJs
jQuery中index()方法用法实例
2014/12/27 Javascript
Web表单提交之disabled问题js解决方法
2015/01/13 Javascript
js实现一个链接打开两个链接地址的方法
2015/05/12 Javascript
JavaScript保存并运算页面中数字类型变量的写法
2015/07/06 Javascript
Json对象和字符串互相转换json数据拼接和JSON使用方式详细介绍(小结)
2016/10/25 Javascript
js实现增加数字显示的环形进度条效果
2017/02/05 Javascript
jQuery快速高效制作网页交互特效
2017/02/24 Javascript
总结js中的一些兼容性易错的问题
2017/12/18 Javascript
Vue页面骨架屏注入方法
2018/05/13 Javascript
vue :src 文件路径错误问题的解决方法
2018/05/15 Javascript
详解在vue-cli项目下简单使用mockjs模拟数据
2018/10/19 Javascript
layui 动态设置checbox 选中状态的例子
2019/09/02 Javascript
如何在Vue中使localStorage具有响应式(思想实验)
2020/07/14 Javascript
Vue获取微博授权URL代码实例
2020/11/04 Javascript
从源码角度来回答keep-alive组件的缓存原理
2021/01/18 Javascript
JavaScript实现点击自制菜单效果
2021/02/02 Javascript
用smtplib和email封装python发送邮件模块类分享
2014/02/17 Python
在Python的Django框架上部署ORM库的教程
2015/04/20 Python
Python 闭包的使用方法
2017/09/07 Python
python 获取当天每个准点时间戳的实例
2018/05/22 Python
使用Python来开发微信功能
2018/06/13 Python
Python模块、包(Package)概念与用法分析
2019/05/31 Python
python flask中动态URL规则详解
2019/11/22 Python
html5基础标签(html5视频标签 html5新标签用法)
2013/12/30 HTML / CSS
党课培训心得体会
2014/09/02 职场文书
小学教师个人总结
2015/02/05 职场文书
班主任高考寄语
2015/02/26 职场文书
七年级作文之冬景
2019/11/07 职场文书
SpringBoot详解整合Redis缓存方法
2022/07/15 Java/Android