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 相关文章推荐
JavaScript 拖拉缩放效果
Dec 10 Javascript
Jquery知识点三 jquery表单对象操作
Jan 17 Javascript
javascript随机之洗牌算法深入分析
Jun 07 Javascript
使用JS画图之点、线、面
Jan 12 Javascript
让浏览器崩溃的12行JS代码(DoS攻击分析及防御)
Oct 10 Javascript
JS实现数组去重复值的方法示例
Feb 18 Javascript
微信小程序封装http访问网络库实例代码
May 24 Javascript
Vue-cropper 图片裁剪的基本原理及思路讲解
Apr 17 Javascript
在 Vue 项目中引入 tinymce 富文本编辑器的完整代码
May 04 Javascript
Vue实现固定定位图标滑动隐藏效果
May 30 Javascript
简单了解小程序+node梳理登陆流程
Jun 24 Javascript
详解vue父子组件状态同步的最佳方式
Sep 10 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中的CMS的涵义
2007/03/11 PHP
js 图片缩放(按比例)控制代码
2009/05/27 Javascript
详解为Angular.js内置$http服务添加拦截器的方法
2016/12/20 Javascript
读Javascript高性能编程重点笔记
2016/12/21 Javascript
Vue2.0 UI框架ElementUI使用方法详解
2017/04/14 Javascript
NodeJS实现视频转码的示例代码
2017/11/18 NodeJs
Vue.Draggable拖拽功能的配置使用方法
2020/07/29 Javascript
express express-session的使用小结
2018/12/12 Javascript
如何基于filter实现网站整体变灰功能
2020/04/17 Javascript
js判断鼠标移入移出方向的方法
2020/06/24 Javascript
微信小程序canvas动态时钟
2020/10/22 Javascript
vue中使用腾讯云Im的示例
2020/10/23 Javascript
[04:54]DOTA2 2017国际邀请赛:上届冠军WINGS采访短片
2017/08/09 DOTA
python 字符串split的用法分享
2013/03/23 Python
python 队列详解及实例代码
2016/10/18 Python
Python实现针对中文排序的方法
2017/05/09 Python
python 表达式和语句及for、while循环练习实例
2017/07/07 Python
python中实现精确的浮点数运算详解
2017/11/02 Python
python实现排序算法解析
2018/09/08 Python
python区块及区块链的开发详解
2019/07/03 Python
Python 取numpy数组的某几行某几列方法
2019/10/24 Python
python3 动态模块导入与全局变量使用实例
2019/12/22 Python
tensorflow 实现打印pb模型的所有节点
2020/01/23 Python
python实现堆排序的实例讲解
2020/02/21 Python
详解BeautifulSoup获取特定标签下内容的方法
2020/12/07 Python
详解python日志输出使用配置文件格式
2021/02/10 Python
CSS3 实现发光边框特效
2020/11/11 HTML / CSS
Backcountry旗下的户外商品闪购网站:steep&cheap
2016/09/22 全球购物
加拿大时尚少女服装品牌:Garage
2016/10/10 全球购物
加拿大女包品牌:Matt & Nat
2017/05/12 全球购物
贝佳斯官方网站:Borghese
2020/05/08 全球购物
PHP面试题-$message和$$message的区别
2015/12/08 面试题
大学毕业感言200字
2014/03/09 职场文书
2014银行授权委托书样本
2014/10/04 职场文书
关于观后感的作文
2015/06/18 职场文书
2016年机关单位节能宣传周活动总结
2016/04/05 职场文书