浅谈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 相关文章推荐
分别用marquee和div+js实现首尾相连循环滚动效果,仅3行代码
Sep 21 Javascript
jQuery使用动态渲染表单功能完成ajax文件下载
Jan 15 Javascript
node.js中的console.trace方法使用说明
Dec 09 Javascript
jQuery中removeData()方法用法实例
Dec 27 Javascript
jQuery实现贪吃蛇小游戏(附源码下载)
Mar 04 Javascript
bootstrap table实现点击翻页功能 可记录上下页选中的行
Sep 28 Javascript
微信小程序实现打开内置地图功能【附源码下载】
Dec 07 Javascript
vue 自定义 select内置组件
Apr 10 Javascript
关于vue中的ajax请求和axios包问题
Apr 19 Javascript
微信小程序动态生成二维码的实现代码
Jul 25 Javascript
Element-UI 使用el-row 分栏布局的教程
Oct 26 Javascript
JS实现简单九宫格抽奖
Jun 28 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
推荐文章系统(一)
2006/10/09 PHP
PHP与MySQL开发的8个技巧小结
2010/12/17 PHP
利用浏览器的Javascript控制台调试PHP程序
2014/01/08 PHP
php的闭包(Closure)匿名函数初探
2016/02/14 PHP
jQuery固定浮动侧边栏实现思路及代码
2014/09/28 Javascript
JS+CSS实现鼠标滑过时动态翻滚的导航条效果
2015/09/24 Javascript
JS实用技巧小结(屏蔽错误、div滚动条设置、背景图片位置等)
2016/06/16 Javascript
jQuery实现的可编辑表格完整实例
2016/06/20 Javascript
分分钟玩转Vue.js组件
2016/10/25 Javascript
详解Js模板引擎(TrimPath)
2016/11/22 Javascript
探讨跨域请求资源的几种方式(总结)
2016/12/02 Javascript
正则中的回溯定义与用法分析【JS与java实现】
2016/12/27 Javascript
bootstrap手风琴制作方法详解
2017/01/11 Javascript
jquery实现数字输入框
2017/02/22 Javascript
微信小程序 上传头像的实例详解
2017/10/27 Javascript
微信小程序基于本地缓存实现点赞功能的方法
2017/12/18 Javascript
vue之浏览器存储方法封装实例
2018/03/15 Javascript
微信小程序实现图片选择并预览功能
2019/07/25 Javascript
nodejs实现的http、https 请求封装操作示例
2020/02/06 NodeJs
Nuxt的动态路由和参数校验操作
2020/11/09 Javascript
[29:59]完美世界DOTA2联赛PWL S3 Forest vs access 第二场 12.11
2020/12/13 DOTA
基于Python的ModbusTCP客户端实现详解
2019/07/13 Python
Python实现名片管理系统
2020/02/14 Python
python实现猜数游戏
2020/03/27 Python
CSS3弹性布局内容对齐(justify-content)属性使用详解
2017/07/31 HTML / CSS
详解Canvas 实现炫丽的粒子运动效果(粒子生成文字)
2018/02/01 HTML / CSS
高中生物教学反思
2014/02/05 职场文书
工作说明书范文
2014/05/07 职场文书
大学新闻系求职信
2014/06/03 职场文书
电气自动化求职信
2014/06/24 职场文书
应届本科毕业生求职信
2014/07/23 职场文书
教师学期述职自我鉴定
2019/08/16 职场文书
python - asyncio异步编程
2021/04/06 Python
MySQL系列之十三 MySQL的复制
2021/07/02 MySQL
Java工作中实用的代码优化技巧分享
2022/04/21 Java/Android
css弧边选项卡的项目实践
2023/05/07 HTML / CSS