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 在数据更新后不会重新渲染,需要刷新页面才能看到更改