浅谈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 相关文章推荐
在页面上点击任一链接时触发一个事件的代码
Apr 07 Javascript
Asp.Net alert弹出提示信息的几种方法总结
Jan 29 Javascript
JS实现的一个简单的Autocomplete自动完成例子
Apr 16 Javascript
javascript 中__proto__和prototype详解
Nov 25 Javascript
基于jquery实现简单的手风琴特效
Nov 24 Javascript
有关jQuery中parent()和siblings()的小问题
Jun 01 Javascript
Bootstrap源码解读导航条(7)
Dec 23 Javascript
在javascript中,null>=0 为真,null==0却为假,null的值详解
Feb 22 Javascript
jQuery+ThinkPHP+Ajax实现即时消息提醒功能实例代码
Mar 21 jQuery
vue Tab切换以及缓存页面处理的几种方式
Nov 05 Javascript
详解vuejs中执行npm run dev出现页面cannot GET/问题
Apr 26 Javascript
使用PDF.js渲染canvas实现预览pdf的效果示例
Apr 17 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之第八天
2006/10/09 PHP
php结合ajax实现赞、顶、踩功能实例
2014/05/12 PHP
10款实用的PHP开源工具
2015/10/23 PHP
PHP实现搜索地理位置及计算两点地理位置间距离的实例
2016/01/08 PHP
PHP实现的自定义数组排序函数与排序类示例
2016/11/18 PHP
js 省地市级联选择
2010/02/07 Javascript
Javascript 面向对象 继承
2010/05/13 Javascript
jQuery学习笔记 操作jQuery对象 文档处理
2012/09/19 Javascript
Jquery解析Json格式数据过程代码
2014/10/17 Javascript
JavaScript自定义数组排序方法
2015/02/12 Javascript
使用struts2+Ajax+jquery验证用户名是否已被注册
2016/03/22 Javascript
Bootstrap开发实战之响应式轮播图
2016/06/02 Javascript
JS随机排序数组实现方法分析
2017/10/11 Javascript
详解vue beforeEach 死循环问题解决方法
2020/02/25 Javascript
JavaScript编码小技巧分享
2020/09/17 Javascript
Python中运算符&quot;==&quot;和&quot;is&quot;的详解
2016/10/08 Python
python增加图像对比度的方法
2019/07/12 Python
python3中eval函数用法使用简介
2019/08/02 Python
ipad上运行python的方法步骤
2019/10/12 Python
python base64库给用户名或密码加密的流程
2020/01/02 Python
ziaja齐叶雅官方海外旗舰店:来自波兰的天然护肤品牌
2017/01/02 全球购物
美国开幕式潮店:Opening Ceremony
2018/02/10 全球购物
乌克兰电子产品和家用电器购物网站:TOUCH
2019/08/09 全球购物
Goodee官方商店:迷你投影仪
2021/03/15 全球购物
护理专业个人求职简历的自我评价
2013/10/13 职场文书
企业行政文员岗位职责
2013/12/03 职场文书
产品质量保证书
2014/04/29 职场文书
安全生产宣传标语
2014/06/06 职场文书
企业标语口号
2014/06/10 职场文书
老龄工作先进事迹
2014/08/15 职场文书
关于运动会的广播稿50字
2014/10/17 职场文书
助学金感谢信
2015/01/20 职场文书
2015年酒店前台工作总结
2015/04/20 职场文书
2015年教师节广播稿
2015/08/19 职场文书
话题作文之财富(600字)
2019/12/03 职场文书
零基础学java之方法的定义与调用详解
2022/04/10 Java/Android