Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
haizhilin2013 opened this issue Jun 22, 2019 · 12 comments
Open

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

haizhilin2013 opened this issue Jun 22, 2019 · 12 comments
Labels
vue vue

Comments

@haizhilin2013
Copy link
Collaborator

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

@haizhilin2013 haizhilin2013 added the vue vue label Jun 22, 2019
@zhangyuhuihh
Copy link

$forceUpdate?

@WalkAlone0325
Copy link

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

@qq326943819
Copy link

qq326943819 commented Jun 28, 2019

强制重新渲染

this.$forceUpdate()

强制重新刷新某组件

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

@klren0312
Copy link

v-if ?

@mying01
Copy link

mying01 commented Jul 4, 2019

this.$forceUpdate()
v-if

@censek
Copy link

censek commented Oct 17, 2019

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

@zhangyuexin
Copy link

组价上加 key 然后改变key值

@duzouli
Copy link

duzouli commented Mar 28, 2020

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

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

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

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

@hyj443
Copy link

hyj443 commented Oct 19, 2021

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

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

@aidixie
Copy link

aidixie commented May 12, 2022

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

@sc950828
Copy link

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

@Tracymcgrady946
Copy link

使用$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
Labels
vue vue
Projects
None yet
Development

No branches or pull requests