解决html页面或vue页面初始进入时页面闪烁。出现{{}}数据的现象

在html页面引用vue.js时出现闪烁{{}}未加载数据以及默认样式,初始一进来闪动太丑了,使用v-cloak完全不起作用,找了很久,发现下面这个方法可行

在页面最外层div上加上下面这段语句:

<div id='app'  style="display: none;" :style="{display: 'block'}">

可以生效的原因是::style只有vue渲染的时候才识别,在此之前style=“display: none;” 让页面不显示。vue渲染后,:style="{display: ‘block’}"又让页面显示出来。亲测有效。

### Vue 页面跳转触发的生命周期钩子 当使用 `Vue Router` 进行页面跳转,会涉及到一系列组件的销毁与创建过程,在这个过程中多个生命周期钩子会被调用。对于即将离开的组件而言,`beforeDestroy` 和 `destroyed` 钩子会在导航完成前被触发[^3]。 而对于新进入的目标组件来说,则依次经历如下几个阶段: - **beforeCreate**: 实例刚被初始化之后立即同步调用此钩子之前的数据观测 (data observer) 及事件配置已经生效,此还没有挂载节点,也没有访问到 `$el` 属性。 - **created**: 完成数据观测、属性和方法初始化后立刻调用该钩子;如果要操作 DOM 者发起网络请求获取初始数据通常在此处处理,不过需要注意的是此刻依然无法直接访问DOM元素因为视图尚未渲染出来。 - **beforeMount**: 在挂载开始之前被调用:相关的 render 函数首次被调用。这模板编译完毕但是还未真正插入文档流内,因此可以修改虚拟DOM而不会引起闪烁现象。 - **mounted**: 当实例完成了挂载至真实DOM上并更新了对应的界面显示以后就会触发 mounted() 方法,意味着现在可以在浏览器环境中通过 this.$el 访问到了实际存在的 HTML 结构体,并且能够安全地执行依赖于原生 JavaScript 的逻辑代码片段[^2]。 另外值得注意的一点是在单页应用(SPA)环境下切换不同路径下的视图容器中的活跃组件除了上述标准流程外还存在特有的路由守卫机制来增强控制力,比如全局前置守卫(` beforeEach`)可用于拦截所有的导航动作从而实现权限验证等功能特性。 ```javascript // 示例代码展示如何监听特定路由变化以及相应周期内的行为响应 const router = new VueRouter({ routes: [ { path: '/foo', component: Foo, beforeEnter(to, from, next){ console.log('准备进入 foo 组件'); next(); } }, // ...其他路由定义... ] }); new Vue({ el: '#app', router, }); ```
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值