浅谈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 相关文章推荐
JavaScript按位运算符的应用简析
Feb 04 Javascript
jfinal与bootstrap的登录跳转实战演习
Sep 22 Javascript
详细解读Jquery各Ajax函数($.get(),$.post(),$.ajax(),$.getJSON())
Aug 15 Javascript
jquery延迟对象解析
Oct 26 Javascript
基于jQuery的select下拉框选择触发事件实例分析
Nov 18 Javascript
JavaScript与JQUERY获取元素的宽、高和位置
Feb 26 Javascript
利用纯JS实现像素逐渐显示的方法示例
Aug 14 Javascript
在Vue.js中使用Mixins的方法
Sep 12 Javascript
浅析Vue中method与computed的区别
Mar 06 Javascript
解决使用vue.js路由后失效的问题
Mar 17 Javascript
es6 super关键字的理解与应用实例分析
Feb 15 Javascript
详解jQuery的核心函数和事件处理
Feb 18 jQuery
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
Oracle 常见问题解答
2006/10/09 PHP
php入门之连接mysql数据库的一个类
2012/04/21 PHP
PHP中多维数组的foreach遍历示例
2014/06/13 PHP
4种PHP异步执行的常用方式
2015/12/24 PHP
PHP函数引用返回的实例详解
2016/09/11 PHP
PHP实现将标点符号正则替换为空格的方法
2017/08/09 PHP
PHP操作Redis常用命令的实例详解
2020/12/23 PHP
实现超用户体验 table排序javascript实现代码
2009/06/22 Javascript
Extjs学习笔记之二 初识Extjs之Form
2010/01/07 Javascript
js 获取服务器控件值的代码
2010/03/05 Javascript
xml转json的js代码
2012/08/28 Javascript
使用js的replace()方法查找字符示例代码
2013/10/28 Javascript
DIV始终居中的js代码
2014/02/17 Javascript
WordPress 单页面上一页下一页的实现方法【附代码】
2016/03/10 Javascript
jquery 获取select数组与name数组长度的实现代码
2016/06/20 Javascript
Bootstrap CSS组件之下拉菜单(dropdown)
2016/12/17 Javascript
深入理解vuex2.0 之 modules
2017/11/20 Javascript
layui 弹出层回调获取弹出层数据的例子
2019/09/02 Javascript
使用Vue-scroller页面input框不能触发滑动的问题及解决方法
2020/08/08 Javascript
JS中队列和双端队列实现及应用详解
2020/09/29 Javascript
Ant Design moment对象和字符串之间的相互转化教程
2020/10/27 Javascript
Python实现在线音乐播放器
2017/03/03 Python
详解python eval函数的妙用
2017/11/16 Python
对Python中数组的几种使用方法总结
2018/06/28 Python
pip安装py_zipkin时提示的SSL问题对应
2018/12/29 Python
OpenCV利用python来实现图像的直方图均衡化
2020/10/21 Python
python中requests模拟登录的三种方式(携带cookie/session进行请求网站)
2020/11/17 Python
amazeui页面校验功能的实现代码
2020/08/24 HTML / CSS
美国知名的百货清仓店:Neiman Marcus Last Call
2016/08/03 全球购物
工作失职造成投诉的检讨书范文
2014/10/05 职场文书
用人单位终止解除劳动合同证明书
2014/10/06 职场文书
2015年街道办事处工作总结
2015/05/22 职场文书
2015年小学生暑假总结
2015/07/13 职场文书
Python scrapy爬取起点中文网小说榜单
2021/06/13 Python
新手入门Jvm-- JVM对象创建与内存分配机制
2021/06/18 Java/Android
Android Flutter实现3D动画效果示例详解
2022/04/07 Java/Android