美文网首页
Vue界面更新数据渲染

Vue界面更新数据渲染

作者: 领带衬有黄金 | 来源:发表于2019-10-08 10:14 被阅读0次

1. 业务需求

在页面中,数据通过异步获取,但是有的方法或者第三方组件的加载,例如Swiper加载时需要数据已经渲染完成才能渲染组件效果。

2. 解决方式

此时vue的api中提供了,页面数据获取完成,监听数据改变,并当数据改变后,渲染到页面的回调函数。

3. 介绍nextTick

3.1 在监听中使用的方式

将回调延迟到下次 DOM 更新循环之后执行。在修改数据之后立即使用它,然后等待 DOM 更新。它跟全局方法 Vue.nextTick 一样,不同的是回调的 this 自动绑定到调用它的实例上。

watch: {
            //监听哪一个,名字就是哪一个
            category(value) {
                //该函数调用,表示值发生改变,然后再异步更新界面
                // 可以使用setTimeout,自定义延时,进行实现
                //保证页面加载完成,创建一个Swiper实例对象,来实现轮播
                /*setTimeout(() => {
                    new Swiper('.swiper-container', {
                        loop: true,//循环轮播
                        pagination: {
                            el: '.swiper-pagination'
                        },
                    });
                }, 100)*/

                // 界面更新就立即通知
                this.$nextTick(() => {//一旦界面完成更新,立即调用该方法(此语句写在数据更新之后)
                    //保证页面加载完成,创建一个Swiper实例对象,来实现轮播
                    new Swiper('.swiper-container', {
                        loop: true,//循环轮播
                        // 如果需要分页器
                        pagination: {
                            el: '.swiper-pagination',
                        }
                    })
                })
            }
        }

3.2 在monted中使用的方式

el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子。如果 root 实例挂载了一个文档内元素,当 mounted 被调用时 vm.$el 也在文档内。

注意 mounted 不会承诺所有的子组件也都一起被挂载。如果你希望等到整个视图都渲染完毕,可以用 vm.$nextTick 替换掉 mounted

mounted: function () {
  this.$nextTick(function () {
    // Code that will run only after the
    // entire view has been rendered
  })
}

相关文章

  • Vue界面更新数据渲染

    1. 业务需求 在页面中,数据通过异步获取,但是有的方法或者第三方组件的加载,例如Swiper加载时需要数据已经渲...

  • 为什么Vue采用异步渲染呢?

    Vue 是组件级更新,如果不采用异步更新,那么每次更新数据都会对当前组件进行重新渲染,所以为了性能, Vue 会在...

  • vue 数据更新 dom不渲染

    场景:获取接口数据,更新dom问题:数据更新了,dom未渲染代码: 原因:vue的dom更新是异步的,即当sett...

  • VUE数组更新并没有在view层更新

    用VUE渲染数据时遇到的问题:数据模型层更新了,但是没有在view层更新,而通过console打印发现数据确实更新...

  • vue原理与开发逻辑

    1、vue中的$nextTick()的用法和原理 vue的DOM更新是异步的,当数据更新了,再dom中渲染后,自动...

  • 4.vue 为何采用异步渲染

    理解: 如果不采取异步更新,那么每次更新数据都会对当前组件进行重新渲染,为了性能考虑,Vue 会在本轮数据更新后,...

  • miniVue源码学习

    Vue -- MVVM 数据响应式 模板引擎 渲染--真实DOM 监听数据变化、并在视图更新 Object.def...

  • vue 为何采用异步渲染

    理解:如果不采取异步更新,那么每次更新数据都会对当前组件进行重新渲染,为了性能考虑,Vue 会在本轮数据更新后,再...

  • 前端高阶面试题之Vue

    .什么是vue生命周期 Vue 实例从开始创建、初始化数据、编译模板、挂载Dom→渲染、更新→渲染、销毁等一系列过...

  • Vue 高频面试题汇总

    .什么是vue生命周期 Vue 实例从开始创建、初始化数据、编译模板、挂载Dom→渲染、更新→渲染、销毁等一系列过...

网友评论

      本文标题:Vue界面更新数据渲染

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