vue重新渲染数据,刷新显示数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue重新渲染数据,刷新显示数据相关的知识,希望对你有一定的参考价值。

参考技术A 一般这种功能可以用在页面添加功能上面,例如push字符串,‘查看更多’的功能时候,可以用到这种方法。

<template>

  <div>

      <div v-for='item in list'>item</div>

      <button @click='click'>改变</button>

      <button @click='hadelClick'>解决方法</button>

  </div>

</template>

<script>

  export default(

    data()

      return

        list:a:'a',b:'b',

     

    ,

    methods:

          click()

          //  未声明不触发渲染

          this.list.c='c'

          ,

          hadelClick()

            // 解决方法,使用vue提供的$set方法来触发渲染

将后面的d  添加到第一个d中

            this.$set(this.list,'d','d')

         

       

  )

</script>

vue修改数据,刷新当前页面,重新渲染页面数据

业务场景:在管理后台,在执行完,增,删,改,操作的时候。我们需要刷新一下页面,重载数据。在JQ中我们会用到location.reload()方法,刷新页面;在vue中,这里需要用到一个 provide / inject 这对用例。(其他方法:this.$router.go(0),会强制刷新,出现空白页面体验不好);

原理是:通过控制router-view 的显示与隐藏,来重渲染路由区域,重而达到页面刷新的效果。

代码如下:

1:在父组件中加入

<template>
  <div id="app">
        <router-view v-if="isRouterAlive"></router-view>
  </div>
</template> 
<script>
export default {
  name: App,
  provide (){
     return {
       reload:this.reload
     }
  },
  data(){
    return {
       isRouterAlive:true
    }
  },
  methods:{
    reload (){
       this.isRouterAlive = false
       this.$nextTick(function(){
          this.isRouterAlive = true
       })
    }
  },
  components:{
  }
}
</script>

2:然后在子组件export default中引入

inject:[‘reload‘]

3:最后在执行完相应的操作,后调用reload方法就可以了!

this.reload();

 

以上是关于vue重新渲染数据,刷新显示数据的主要内容,如果未能解决你的问题,请参考以下文章

VueJS - V-for 在数据更新后不会重新渲染,需要刷新页面才能看到更改

vue使用v-for渲染完组件,删除数据时总是删除最后一个解决方案

vue 改变数组中对象的属性怎么重新渲染列表

vue.js中使用echarts实现数据动态刷新功能

vuetab按钮切换动态数据间隙按钮位置掉低的问题

vue.js 使用计时器自动重新加载/刷新数据