浅谈Vue.js 关于页面加载完成后执行一个方法的问题


Posted in Javascript onApril 01, 2019

首先我们会想着在mounted或者created里面加入想要执行的方法,但是有的时候会遇到在你执行这个方法的时候,页面还并没有被渲染完成,所以就会出现这个方法在匹配页面标签报错的情况。

解决思路:

1.通过子页面调用父页面的方法,因为在子页面开始渲染的时候,你的父页面肯定是已经渲染好了的,前提这里的方法中是去找寻父页面的标签。

2.直接在本页面监视一个参数,发现参数被初始化了,说明页面也已经加载完成,因为你的页面用到了这个参数。

方法1案例:tab页里的子页面如果没有内容就隐藏

父页面代码

<el-tabs v-model="initTab" type="card">
 <el-tab-pane label="1信息" name="tab1">
  1
 </el-tab-pane>
 <el-tab-pane label="2报告" name="tab2">
  2
 </el-tab-pane>
 <el-tab-pane label="3信息" name="tab3">
  3
 </el-tab-pane>
 <el-tab-pane label="4信息" name="tab4">
  <ziyemian-group @tabShow="tabShow" title="4信息" v-if="detailInfo">
  </ziyemian-group>
 
 </el-tab-pane>
 <el-tab-pane label="5信息" name="tab5">
  5
 </el-tab-pane>
 <el-tab-pane label="其它信息" name="tab6">
  6
 </el-tab-pane>
</el-tabs>
 
import ZiyemianGroup from './ZiyemianGroup.vue'
components: {
 ZiyemianGroup
},
data () {
  return {
    detailInfo: {},
    initTab:‘tab1'
  }
}
methods: {
 tabShow: (data) => {
  document.getElementsByClassName('el-tabs__item').item(4).style.display = data
 },
}

然后是ZiyemianGroup.vue的代码,这里主要就是方法调用,页面自己搞定

data () {
 return {
  list: []
 }
},
mounted () {
 this.init()
},
methods: {
 init() {
  if (list.length > 0) {
    this.$emit('whiteShow', 'inline')
  } else {
    this.$emit('whiteShow', 'none')
  }
 )
}

list是子页面的内容,这样如果子页面没有内容就可以隐藏掉了

方法2案例:我这边需要tab页隐藏

<el-tabs v-model="initTab" type="card">
 <el-tab-pane label="1信息" name="tab1">
  1
 </el-tab-pane>
 <el-tab-pane label="2报告" name="tab2">
  2
 </el-tab-pane>
 <el-tab-pane label="3信息" name="tab3">
  3
 </el-tab-pane>
 <el-tab-pane label="4信息" name="tab4">
  <ziyemian-group title="4信息" v-if="detailInfo">
  </ziyemian-group>
 
 </el-tab-pane>
 <el-tab-pane label="5信息" name="tab5">
  5
 </el-tab-pane>
 <el-tab-pane label="其它信息" name="tab6">
  6
 </el-tab-pane>
</el-tabs>
 
import ZiyemianGroup from './ZiyemianGroup.vue'
components: {
 ZiyemianGroup
},
data () {
  return {
    detailInfo: {},
    initTab:‘tab1'
  }
}
watch: {
 detailInfo: function () {
  this.$nextTick(function () {
   this.tabShow()
  })
 }
},
methods: {
  tabShow () {
    document.getElementsByClassName('el-tabs__item').item(6).style.display = 'none' // 隐藏tab6
  }
}

nextTick方法,意思是在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。

隐藏tab的方法我用了原生js,因为vue生成后的页面和写的vue页面有所差别,所以我直接用了最笨的方法进行匹配。

以上所述是小编给大家介绍的Vue.js 关于页面加载完成后执行一个方法的问题详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JQuery+DIV自定义滚动条样式的具体实现
Jun 25 Javascript
JS定时器实例详细分析
Oct 11 Javascript
js实现网页倒计时、网站已运行时间功能的代码3例
Apr 14 Javascript
Javascript学习笔记之 函数篇(二) : this 的工作机制
Jun 24 Javascript
javascript去除空格方法小结
May 21 Javascript
对象题目的一个坑 理解Javascript对象
Dec 22 Javascript
利用jQuery中的ajax分页实现代码
Feb 25 Javascript
js判断文件格式及大小的简单实例(必看)
Oct 11 Javascript
jQuery事件详解
Feb 23 Javascript
jQuery实现百度登录框的动态切换效果
Apr 21 jQuery
vue.js提交按钮时进行简单的if判断表达式详解
Aug 08 Javascript
react中hook介绍以及使用教程
Dec 11 Javascript
VUE脚手架的下载和配置步骤详解
Apr 01 #Javascript
详解JavaScript中的函数、对象
Apr 01 #Javascript
Vue递归组件+Vuex开发树形组件Tree--递归组件的简单实现
Apr 01 #Javascript
基于vue框架手写一个notify插件实现通知功能的方法
Mar 31 #Javascript
基于elementUI实现图片预览组件的示例代码
Mar 31 #Javascript
微信小程序访问豆瓣电影api的实现方法
Mar 31 #Javascript
vue项目首屏打开速度慢的解决方法
Mar 31 #Javascript
You might like
什么是短波收听SWL
2021/03/01 无线电
php下载远程文件类(支持断点续传)
2008/11/14 PHP
php删除数组元素示例分享
2014/02/17 PHP
PHP实现冒泡排序的简单实例
2016/05/26 PHP
Laravel获取所有的数据库表及结构的方法
2019/10/10 PHP
Yii框架视图、视图布局、视图数据块操作示例
2019/10/14 PHP
javascript ajax 仿百度分页函数
2013/10/29 Javascript
js 限制input只能输入数字、字母和汉字等等
2013/12/18 Javascript
JS实现固定在右下角可展开收缩DIV层的方法
2015/02/13 Javascript
javascript实现checkBox的全选,反选与赋值
2015/03/12 Javascript
CSS3实现动态背景登录框的代码
2015/07/28 Javascript
JavaScript中函数表达式和函数声明及函数声明与函数表达式的不同
2015/11/15 Javascript
jQuery实现鼠标经过时高亮,同时其他同级元素变暗的效果
2016/09/18 Javascript
AngularJS+Bootstrap3多级导航菜单的实现代码
2017/08/16 Javascript
npm配置国内镜像资源+淘宝镜像的方法
2018/09/07 Javascript
如何封装了一个vue移动端下拉加载下一页数据的组件
2019/01/06 Javascript
vue.js自定义组件实现v-model双向数据绑定的示例代码
2020/01/08 Javascript
JavaScript中继承原理与用法实例入门
2020/05/09 Javascript
JavaScript设计模式--简单工厂模式实例分析【XHR工厂案例】
2020/05/23 Javascript
weui上传多图片,压缩,base64编码的示例代码
2020/06/22 Javascript
从源码角度来回答keep-alive组件的缓存原理
2021/01/18 Javascript
python3调用R的示例代码
2018/02/23 Python
python复制文件到指定目录的实例
2018/04/27 Python
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
2019/02/17 Python
pytorch中的embedding词向量的使用方法
2019/08/18 Python
python环境下安装opencv库的方法
2020/03/05 Python
keras自动编码器实现系列之卷积自动编码器操作
2020/07/03 Python
Python 找出英文单词列表(list)中最长单词链
2020/12/14 Python
美国知名运动产品零售商:Foot Locker
2016/07/23 全球购物
护理专业的自荐信
2013/10/22 职场文书
希特勒的演讲稿
2014/05/23 职场文书
计算机系统管理员求职信
2014/06/20 职场文书
2014公安机关纪律作风整顿思想汇报
2014/09/13 职场文书
借款民事起诉状范文
2015/05/19 职场文书
OpenCV实现常见的四种图像几何变换
2022/04/01 Python
JDK8中String的intern()方法实例详细解读
2022/09/23 Java/Android