vue 手动/局部刷新组件
使用场景点击按钮(或某变量改变时),在不刷新整个页面的情况下,局部刷新(重绘)图表,或者重新加载子组件。实现方案1. 在需要局部刷新的组件上,加上v-if = "show" ,show的默认值为 true , 这样第一次渲染页面时,该组件能正常显示2. 在点击事件中,先将 show 变为 false ,然后在 this.$nextTick 中将 show 变为 true , 这样便实现了组件的局部
·
使用场景
点击按钮(或某变量改变时),在不刷新整个页面的情况下,局部刷新(重绘)图表,或者重新加载子组件。
实现方案
1. 在需要局部刷新的组件上,加上 v-if = "show" ,show的默认值为 true , 这样第一次渲染页面时,该组件能正常显示
2. 在点击事件中,先将 show 变为 false ,然后在 this.$nextTick 中将 show 变为 true , 这样便实现了组件的局部刷新
methods: {
update() {
this.show = false;
this.$nextTick(
() => {
this.show = true
}
)
}
},
完整的范例代码
父组件
<template>
<div>
<button @click="update">刷新test1</button>
<Test1 v-if="show"></Test1>
</div>
</template>
<script>
import Test1 from './test1'
export default {
components: {Test1},
data() {
return {
show: true,
}
},
methods: {
update() {
this.show = false;
this.$nextTick(
() => {
this.show = true
}
)
}
},
}
</script>
<style scoped>
</style>
子组件 test1
<template>
<div>test1</div>
</template>
<script>
export default {
name: "test1",
mounted() {
alert("正在渲染test1")
}
}
</script>
<style scoped>
</style>
更多推荐
已为社区贡献26条内容
所有评论(0)