美文网首页
vue先加载数据再渲染

vue先加载数据再渲染

作者: dounine | 来源:发表于2022-02-27 09:51 被阅读0次

title: vue先加载数据再渲染
date: 2021-05-05 01:41:59


前言

vue 使用中 bug 记录。

版本:vue 3.0

由于 JavaScript 中请求通常是异步,因此几乎无法实现先加载数据再渲染页面。

但是,我们可以用 v-if 判断数据是否已加载,来实现加载完数据再渲染的效果。

应用

比如,有如下数据,需要请求后端获取:

paper: {}

示例一

在页面中,我们可能如此使用:

<p>{{ paper.venue.name }}</p>

由于渲染通常快于数据请求,则可能报如下错误:

TypeError: Cannot read property '_key' of undefined

不过可能无伤大雅(页面最终能展现)。

示例二

但如果如此使用(传入组件):

<router-link :to="{ path: '/' }">{{ paper.venue.name }}</router-link>

则可能报如下错误,甚至页面无法显示:

TypeError: Cannot read property 'parentNode' of null

解决

直接使用 v-if 全部解决:

<p v-if="paper.venue">{{ paper.venue.name }}</p>
<router-link v-if="paper.venue" :to="{ path: '/' }">{{ paper.venue.name }}</router-link>

相关文章

  • vue先加载数据再渲染

    title: vue先加载数据再渲染date: 2021-05-05 01:41:59 前言 vue 使用中 bu...

  • vue

    懒加载vue-lazyload 链接 vue表达式 解决vue页面加载返回来的数据渲染到页面,之前的css不起作用...

  • Vue里的nextTick方法

    需要先异步动态加载数据后,然后使用v-for渲染节点,再执行插件的滑动轮播行为。解决这个问题,我们通过在组件中使用...

  • vue-router的导航守卫之在导航完成后获取数据

    需求:在导航完成之后加载数据。渲染DOM vue-router的导航守卫之导航完成之前获取数据 需求:在导航完成之...

  • 记录一下 element-plus 中使用 el-carouse

    vue3+element-plus使用el-carousel 实现轮播图场景 因为刚开始页面渲染数据还没加载过来,...

  • vue 面试题2020-05-07

    vue父子组件生命周期调用顺序加载渲染过程 和先序深度遍历顺序有关父beforeCreate-->父create...

  • vue防止画面闪烁

    在使用vue绑定数据的时候,渲染页面有时会出现画面闪烁,例如: 加载时可能会看到 加载完成后,才会用具体数据替换{...

  • 四、离屏渲染

    离屏渲染与正常渲染 屏幕上最终显示的数据有两种加载流程 正常渲染加载流程 离屏渲染加载流程离屏渲染与正常渲染 常⻅...

  • Vue单页面项目常见问题

    1.vue渲染深层对象会报错 原因: 由于页面加载,数据还没传过来解决方法: {{item.city.name}...

  • 模板编译

    Vue初次渲染流程: => 先初始化数据=> 将模板进行编译=> 变成render()=> 生成虚拟节点=> 将虚...

网友评论

      本文标题:vue先加载数据再渲染

      本文链接:https://www.haomeiwen.com/subject/atenkrtx.html