今天在项目中遇到的一个需求:

  在一个选项卡功能的页面,出现的问题是,当点击选项卡的某个选项时,会同时加载整个选项卡的数据,本身产品就很大,数据很多,所以这个问题无法忽略;

仔细研究下发现,当刚进入页面时,只会加载当前一个tab的数据,这样是正常的,但当再次点击别的tab时,之前tab的接口就都连带着再次请求一边,只要是不刷新页面,就一直切换tab,一直会有前边的tab数据接口重新请求,项目中tab实现是用的饿了么ui的tab选项卡,在研究了饿了么ui之后发现使用上没有什么问题,而且是子组件的v-if切换

1     <el-tabs v-model="activeName" @tab-click="tabClick" class="assetsIndex">
2       <el-tab-pane label="IP地址" name="ip" class="assetsIndextitle">
3         <FlawIp v-if="ipShow" />
4       </el-tab-pane>
5       <el-tab-pane label="网站" name="web" class="assetsIndextitle">
6         <FlawWeb v-if="webShow" />                                  index文件
7       </el-tab-pane>
8     </el-tabs>

这样的话,切换的时候直接就将dom节点删除了,当时在网上搜的怀疑是dom节点删除,但事件没有移除,但后来看了下,之前没有用过监听,要是使用移除监听应该不好办,所以整理下了思路发现,子组件是用$on接受参数的$emit发送的值,$emit,$on存在的bug就是会将之前的值累加,所以,它会将之前接口再走一遍,可能小项目看不出来什么,但项目一旦大了,一个页面就有好多接口,可能直接就崩了,所以,在接收参数之前一定要清楚下之前的值即可

1  this.$EventBus.$emit('nodeClick', {
2         id: 1                                别的文件发送id这个参数
3       })
this.$EventBus.$off("nodeClick")
 this.$EventBus.$on("nodeClick", ({ id }) => {
      this.getAccount(id);                         子组件接收参数
    });

2019-10-22

---恢复内容结束---

今天在项目中遇到的一个需求:

  在一个选项卡功能的页面,出现的问题是,当点击选项卡的某个选项时,会同时加载整个选项卡的数据,本身产品就很大,数据很多,所以这个问题无法忽略;

仔细研究下发现,当刚进入页面时,只会加载当前一个tab的数据,这样是正常的,但当再次点击别的tab时,之前tab的接口就都连带着再次请求一边,只要是不刷新页面,就一直切换tab,一直会有前边的tab数据接口重新请求,项目中tab实现是用的饿了么ui的tab选项卡,在研究了饿了么ui之后发现使用上没有什么问题,而且是子组件的v-if切换

1     <el-tabs v-model="activeName" @tab-click="tabClick" class="assetsIndex">
2       <el-tab-pane label="IP地址" name="ip" class="assetsIndextitle">
3         <FlawIp v-if="ipShow" />
4       </el-tab-pane>
5       <el-tab-pane label="网站" name="web" class="assetsIndextitle">
6         <FlawWeb v-if="webShow" />                                  index文件
7       </el-tab-pane>
8     </el-tabs>

这样的话,切换的时候直接就将dom节点删除了,当时在网上搜的怀疑是dom节点删除,但事件没有移除,但后来看了下,之前没有用过监听,要是使用移除监听应该不好办,所以整理下了思路发现,子组件是用$on接受参数的$emit发送的值,$emit,$on存在的bug就是会将之前的值累加,所以,它会将之前接口再走一遍,可能小项目看不出来什么,但项目一旦大了,一个页面就有好多接口,可能直接就崩了,所以,在接收参数之前一定要清楚下之前的值即可

1  this.$EventBus.$emit('nodeClick', {
2         id: 1                                别的文件发送id这个参数
3       })
this.$EventBus.$off("nodeClick")
 this.$EventBus.$on("nodeClick", ({ id }) => {
      this.getAccount(id);                         子组件接收参数
    });

转:https://www.cnblogs.com/yanyanliu/p/11723324.html

最新文章

  1. sqlHelper做增删改查,SQL注入处理,存储值,cookie,session
  2. c++中处理输入输出的方法
  3. 判断sql执行效率以及针对临时表的使用
  4. 图表控件MsChart使用demo
  5. 如何破解UltraEdit
  6. JasperReports+iReport打印为excel表头重复问题解决
  7. eclipse html插件的下载和安装
  8. 【centos6 , 6】linux 查看帮助文档:
  9. 【SSH之旅】一步学习的步Struts1相框(三):分析控制Struts1示例
  10. phpstorm快捷键记录
  11. jacascript 构造函数、原型对象和原型链
  12. Python爬虫入门教程 47-100 mitmproxy安装与安卓模拟器的配合使用-手机APP爬虫部分
  13. WPF自定义仪表盘控件
  14. java中String字符串的==解析
  15. Go Example--格式化字符串
  16. 在java中构建json对象,返回给前端页面
  17. 深入理解java虚拟机---JDK8-废弃永久代(PermGen)迎来元空间(Metaspace)(十二)
  18. [C++ Primer] : 第10章: 泛型算法
  19. python 刷题必备
  20. Android之ubuntu源码开发环境搭建笔记

热门文章

  1. 微信小程序-自制弹出框禁止页面上下滑动
  2. ZROI 19.08.08模拟赛
  3. 集合综合练习&lt;四&gt;
  4. win10激活方法 windows 10 最简单的激活方法
  5. maven打包指定main入口插件
  6. electron-vue 更新 使用electron-update的版本
  7. 12. ClustrixDB 为容错和可用性分配磁盘空间
  8. java文件断点续传的简单实现
  9. pycharm的个性化设置
  10. android图片的缩放、圆角处理