浅谈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 相关文章推荐
dojo 之基础篇
Mar 24 Javascript
jquery控制显示服务器生成的图片流
Aug 04 Javascript
jquery无限级联下拉菜单简单实例演示
Nov 23 Javascript
深入理解angularjs过滤器
May 25 Javascript
详解jQuery事件
Jan 13 Javascript
jquery实现焦点轮播效果
Feb 23 Javascript
Angular2实现自定义双向绑定属性
Mar 22 Javascript
jQuery操作css样式
May 15 jQuery
Angular实现搜索框及价格上下限功能
Jan 19 Javascript
Vue动态获取width的方法
Aug 22 Javascript
微信小程序遍历Echarts图表实现多个饼图
Apr 25 Javascript
VueJs里利用CryptoJs实现加密及解密的方法示例
Apr 29 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
用PHP生成自己的LOG文件
2006/10/09 PHP
PHP下的浮点运算不准的解决方法
2016/10/27 PHP
微信公众号开发之通过接口删除菜单
2017/02/20 PHP
php-fpm重启导致的程序执行中断问题详解
2019/04/29 PHP
extjs DataReader、JsonReader、XmlReader的构造方法
2009/11/07 Javascript
JS链式调用的实现方法
2013/03/07 Javascript
javascript的switch用法注意事项分析
2015/02/02 Javascript
浅谈javascript中call()、apply()、bind()的用法
2015/04/20 Javascript
AngularJS学习笔记之基本指令(init、repeat)
2015/06/16 Javascript
js实现的万能flv网页播放器代码
2016/04/30 Javascript
第二篇Bootstrap起步
2016/06/21 Javascript
JS Testing Properties 判断属性是否在对象里的方法
2017/10/01 Javascript
vue 虚拟dom的patch源码分析
2018/03/01 Javascript
el-select数据过多懒加载的解决(loadmore)
2019/05/29 Javascript
浅析vue cli3 封装Svgicon组件正确姿势(推荐)
2020/04/27 Javascript
Python中正则表达式的用法实例汇总
2014/08/18 Python
Python常用模块介绍
2014/11/21 Python
Python中的对象,方法,类,实例,函数用法分析
2015/01/15 Python
Python随机生成彩票号码的方法
2015/03/05 Python
简单掌握Python的Collections模块中counter结构的用法
2016/07/07 Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
2017/12/21 Python
python3+PyQt5实现自定义分数滑块部件
2018/04/24 Python
python 字符串和整数的转换方法
2018/06/25 Python
Linux下安装python3.6和第三方库的教程详解
2018/11/09 Python
python多线程并发实例及其优化
2019/06/27 Python
使用 Python 写一个简易的抽奖程序
2019/12/08 Python
python的help函数如何使用
2020/06/11 Python
Python常用断言函数实例汇总
2020/11/30 Python
使用OpenCV实现人脸图像卡通化的示例代码
2021/01/15 Python
求职简历自荐信
2013/10/20 职场文书
国际会计专业求职信
2014/08/04 职场文书
领导干部“四风”问题批评与自我批评材料
2014/09/24 职场文书
教师群众路线心得体会
2014/11/04 职场文书
调解协议书范本
2016/03/21 职场文书
python实现网络五子棋
2021/04/11 Python
python人工智能human learn绘图可创建机器学习模型
2021/11/23 Python