vue 手动/局部刷新组件

简介: vue 手动/局部刷新组件

使用场景

点击按钮(或某变量改变时),在不刷新整个页面的情况下,局部刷新(重绘)图表,或者重新加载子组件。

实现方案

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>

目录
相关文章
|
2天前
|
存储 API
vue3中如何动态自定义创建组件并挂载
vue3中如何动态自定义创建组件并挂载
|
2天前
|
JavaScript API
vue学习(13)监视属性
vue学习(13)监视属性
13 2
|
2天前
|
JavaScript 前端开发
vue学习(15)watch和computed
vue学习(15)watch和computed
9 1
|
2天前
|
JavaScript
vue学习(14)深度监视
vue学习(14)深度监视
11 0
|
JavaScript
Vue的非父子组件之间传值
全局事件总线 一种组件间通信的方式,适用于任意组件间通信
|
12月前
|
缓存 JavaScript 前端开发
Vue Props、Slot、v-once、非父子组件间的传值....
Vue Props、Slot、v-once、非父子组件间的传值....
72 0
|
JavaScript
Vue中父子组件传值
先在⽗组件中给⼦组件的⾃定义属性绑定⼀个⽗组件的变量
|
JavaScript
vue 组件传值
vue 组件传值
71 0
|
JavaScript
vue父子组件传值
vue父子组件传值
|
JavaScript
vue兄弟组件传值 方便快捷
vue兄弟组件传值 方便快捷