浅谈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 相关文章推荐
写了一个layout,拖动条连贯,内容区可为iframe
Aug 19 Javascript
jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
Oct 15 Javascript
js实现全屏漂浮广告移入光标停止移动
Dec 02 Javascript
文本域光标操作的jQuery扩展分享
Mar 10 Javascript
JavaScript原生对象之Number对象的属性和方法详解
Mar 13 Javascript
javascript实现简单的分页特效
Aug 12 Javascript
JS实现的不规则TAB选项卡效果代码
Sep 18 Javascript
关于JavaScript 原型链的一点个人理解
Jul 31 Javascript
React简单介绍
May 24 Javascript
redux-saga 初识和使用
Mar 10 Javascript
Vue实现本地购物车功能
Dec 05 Javascript
Nuxt的路由配置和参数传递方式
Nov 06 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
实用函数3
2007/11/08 PHP
shopex主机报错误请求解决方案(No such file or directory)
2011/12/27 PHP
基于php冒泡排序算法的深入理解
2013/06/09 PHP
php读取二进制流(C语言结构体struct数据文件)的深入解析
2013/06/13 PHP
Ajax+PHP快速上手及简单应用说明
2013/07/24 PHP
php递归函数怎么用才有效
2018/02/24 PHP
jquery HotKeys轻松搞定键盘事件代码
2008/08/30 Javascript
jQuery中 noConflict() 方法使用
2013/04/25 Javascript
javascript 中that的含义示例介绍
2014/05/14 Javascript
比例尺、缩略图、平移缩放之百度地图添加控件方法
2015/08/03 Javascript
jquery背景跟随鼠标滑动导航
2015/11/20 Javascript
详解nodejs 文本操作模块-fs模块(三)
2016/12/22 NodeJs
JavaScript读写二进制数据的方法详解
2018/09/09 Javascript
浅谈对于react-thunk中间件的简单理解
2019/05/01 Javascript
bootstrap-table+treegrid实现树形表格
2019/07/26 Javascript
layui 富文本图片上传接口与普通按钮 文件上传接口的例子
2019/09/23 Javascript
利用Vue实现简易播放器的完整代码
2020/12/30 Vue.js
原生js拖拽功能制作滑动条实例代码
2021/02/05 Javascript
Python实现的HTTP并发测试完整示例
2020/04/23 Python
TensorFlow实现MLP多层感知机模型
2018/03/09 Python
python使用正则表达式来获取文件名的前缀方法
2018/10/21 Python
Python设计模式之解释器模式原理与用法实例分析
2019/01/10 Python
使用Python画出小人发射爱心的代码
2019/11/23 Python
PyCharm2020.1.1与Python3.7.7的安装教程图文详解
2020/08/07 Python
详解使用HTML5 Canvas创建动态粒子网格动画
2016/12/14 HTML / CSS
欧舒丹英国官网:购买欧舒丹护手霜等明星产品
2017/01/17 全球购物
汇智创新科技发展有限公司
2015/12/06 面试题
计算机操作自荐信
2013/12/07 职场文书
道路交通安全实施方案
2014/03/12 职场文书
2014年四风个人对照检查及整改措施
2014/10/28 职场文书
中国世界遗产导游词
2015/02/13 职场文书
消费者投诉书范文
2015/07/02 职场文书
家长必看:义务教育,不得以面试 评测等名义选拔学生
2019/07/09 职场文书
Nginx 反向代理解决跨域问题多种情况分析
2022/01/18 Servers
baselines示例程序train_cartpole.py的ImportError
2022/05/20 Python
win10频率超出范围怎么办?win10老显示超出工作频率范围的解决方法
2022/07/07 数码科技