Skip to content

[vue] vue怎么实现强制刷新组件? #469

Open
@haizhilin2013

Description

@haizhilin2013
Collaborator

[vue] vue怎么实现强制刷新组件?

Activity

zhangyuhuihh

zhangyuhuihh commented on Jun 28, 2019

@zhangyuhuihh

$forceUpdate?

WalkAlone0325

WalkAlone0325 commented on Jun 28, 2019

@WalkAlone0325

我想到的是加一个new date()

qq326943819

qq326943819 commented on Jun 28, 2019

@qq326943819

强制重新渲染

this.$forceUpdate()

强制重新刷新某组件

//模版上绑定key
<SomeComponent :key="theKey"/>
//选项里绑定data
data(){
  return{
      theKey:0
  }
}
//刷新key达到刷新组件的目的
theKey++;
klren0312

klren0312 commented on Jul 2, 2019

@klren0312

v-if ?

mying01

mying01 commented on Jul 4, 2019

@mying01

this.$forceUpdate()
v-if

censek

censek commented on Oct 17, 2019

@censek

this.$nextTick(()=>{})

zhangyuexin

zhangyuexin commented on Mar 20, 2020

@zhangyuexin

组价上加 key 然后改变key值

duzouli

duzouli commented on Mar 28, 2020

@duzouli

1.如果要在组件内部中进行强制刷新

  • 调用this.$forceUpdate()强制重新渲染组件

2.如果是刷新某个子组件

  • 利用v-if指令的特性
  • 当组件的key 值变更时,会自动的重新渲染
hyj443

hyj443 commented on Oct 19, 2021

@hyj443

大部分情况下是不需要强制刷新的,尽量使用vue的响应式,即被观测的数组或对象为什么没有触发更新,好好检查一下,也可能是你依赖了一个没有被响应式化的状态,做完这些检查后,还是无法响应式更新,那就 Vue 实例重新渲染 vm.$forceUpdate()

它仅仅影响实例本身和插入插槽内容的子组件,而不是所有子组件。

aidixie

aidixie commented on May 12, 2022

@aidixie

1、v-if
2、$forceUpdate()
3、key

sc950828

sc950828 commented on Sep 23, 2022

@sc950828

注意,$forceUpdate()它仅仅影响实例本身和插入插槽内容的子组件,而不是所有子组件。

Tracymcgrady946

Tracymcgrady946 commented on Sep 7, 2023

@Tracymcgrady946

使用$forceUpdate方法:在组件实例上调用 $forceUpdate 方法可以强制组件重新渲染。但请注意,这种方法并不推荐使用,因为它会跳过 Vue 的响应式更新机制,可能导致不可预测的行为。

切换v-if和v-else:通过在组件的父组件中使用 v-if 和 v-else 来切换组件的显示和隐藏状态,可以间接地实现组件的重新渲染。当条件切换时,组件将被销毁并重新创建。

使用事件机制:可以通过在父组件中触发一个自定义事件,然后在子组件中监听该事件来实现组件的重新渲染。通过这种方式,当事件触发时,子组件可以执行相

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @haizhilin2013@klren0312@mying01@aidixie@zhangyuhuihh

        Issue actions

          [vue] vue怎么实现强制刷新组件? · Issue #469 · haizlin/fe-interview