浅谈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 表单验证扩展(三)
Oct 20 Javascript
javascript面向对象特性代码实例
Jun 12 Javascript
javascript中局部变量和全局变量的区别详解
Feb 27 Javascript
学习JavaScript设计模式之状态模式
Jan 08 Javascript
js中window.open的参数及注意注意事项
Jul 06 Javascript
jQuery学习之DOM节点的插入方法总结
Jan 22 Javascript
Jquery获取radio选中的值
May 05 jQuery
React Native第三方平台分享的实例(Android,IOS双平台)
Aug 04 Javascript
深入理解vuex2.0 之 modules
Nov 20 Javascript
react以create-react-app为基础创建项目
Mar 14 Javascript
详解vue中使用微信jssdk
Apr 19 Javascript
Javascript通过控制类名更改样式
May 24 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不用正则采集速度探究总结
2008/03/24 PHP
php新建文件自动编号的思路与实现
2011/06/27 PHP
for循环连续求和、九九乘法表代码
2012/02/20 PHP
PHP中运用jQuery的Ajax跨域调用实现代码
2012/02/21 PHP
jquery+php实现导出datatables插件数据到excel的方法
2015/07/06 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
jquery实现简单的轮换出现效果实例
2015/07/23 Javascript
AngularJS实现Model缓存的方式
2016/02/03 Javascript
Node.js 文件夹目录结构创建实例代码
2016/07/08 Javascript
JS只能输入正整数的简单实例
2016/10/07 Javascript
jQuery判断网页是否已经滚动到浏览器底部的实现方法
2017/10/27 jQuery
如何编写一个完整的Angular4 FormText 组件
2017/11/18 Javascript
js实现复制功能(多种方法集合)
2018/01/06 Javascript
p5.js入门教程之图片加载
2018/03/20 Javascript
详解js跨域请求的两种方式,支持post请求
2018/05/05 Javascript
JavaScript使用math.js进行精确计算操作示例
2018/06/19 Javascript
jQuery实现表单动态添加数据并提交的方法
2018/07/19 jQuery
chosen实现省市区三级联动
2018/08/16 Javascript
Vue的watch和computed方法的使用及区别介绍
2018/09/06 Javascript
深入浅析Node.js 事件循环、定时器和process.nextTick()
2018/10/22 Javascript
jQuery HTML获取内容和属性操作实例分析
2020/05/20 jQuery
原生JavaScript实现轮播图
2021/01/10 Javascript
Bootstrap FileInput实现图片上传功能
2021/01/28 Javascript
Python多线程学习资料
2012/12/19 Python
对python mayavi三维绘图的实现详解
2019/01/08 Python
python 用所有标点符号分隔句子的示例
2019/07/15 Python
在django中,关于session的通用设置方法
2019/08/06 Python
使用Python脚本zabbix自定义key监控oracle连接状态
2019/08/28 Python
python selenium循环登陆网站的实现
2019/11/04 Python
tensorflow之并行读入数据详解
2020/02/05 Python
使用jupyter notebook将文件保存为Markdown,HTML等文件格式
2020/04/14 Python
高中化学教学反思
2014/01/13 职场文书
高一数学教学反思
2014/02/07 职场文书
医院义诊活动总结
2014/07/04 职场文书
2015年迎新晚会策划书
2015/07/16 职场文书
动漫APP软件排行榜前十名,半次元上榜,第一款由腾讯公司推出
2022/03/18 杂记