美文网首页
Vue组件强制刷新的解决方案

Vue组件强制刷新的解决方案

作者: 子语喵 | 来源:发表于2020-11-09 10:31 被阅读0次

Vue组件刷新解决方案:

  • 刷新整个页面
  • 使用v-if标记
  • forceUpdate
  • key-changing

1.刷新整个页面:体验感不好,一般不建议使用

//其中两个刷新整个页面的方法
window.location.reload();
this.$router.go(0)

2.使用v-if标记(条件渲染)

<template>
  <div>
    <span v-if="isShow"></span>
  </div>
</template>
<script>
  export default {
    data() {
      return {
        isShow: false
      }
    },
    methods: {
      setData() {
        this.isShow = !this.isShow
      }
    }
  }
</script>

3.使用内置的forceUpdate方法:组件内置$forceUpdate方法,使用前需要在配置中启用。

import Vue from 'vue'
Vue.forceUpdate()

export default {
  methods: {
    setData() {
      this.$forceUpdate()
    }
  }
}

4.使用key-changing优化组件: vue使用key标记组件身份,当key改变时就是释放原始组件,重新加载新的组件。

<template>
  <div>
    <span :key="key"></span>
  </div>
</template>
<script>
  export default {
    data() {
      return {
        key: 0
      }
    },
    methods: {
      setData() {
        this.key += 1 
      }
    }
  }
</script>

注意:

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

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

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

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

相关文章

  • Vue组件强制刷新的解决方案

    Vue组件刷新解决方案: 刷新整个页面 使用v-if标记 forceUpdate key-changing 1.刷...

  • vue 强制刷新组件

    vue 强制刷新组件 使用vue进行开发时,如果要刷新当前路由,则调用router.go(0)方法即可。但是某些情...

  • vue 强制刷新组件

    使用vue进行开发时,如果要刷新当前路由,则调用router.go(0)方法即可。但是某些情况下,我们可能要求仅仅...

  • vue 强制刷新子组件

    写在前面 把一个组件重置到初始状态是一个常见的需求,推荐的做法有两种,一种是父组件重置子组件的 prop,另一种是...

  • VUE强制刷新子组件

    问题: 因为父组件的tab切换, 导致子组件一直存在, 没有刷新. 所以当父组件传值更新时, 子组件无法获取到. ...

  • vue中刷新组件(强制组件刷新的方法)

    因为直接拖的element-ui的el-dialog,所以用的是 :visible.sync="dialogVis...

  • 2022-05-05 信雅达

    1. 强制刷新子组件 2. 兄弟组件之间通信 3. mixins 4. Vue进阶(六十二):理解$nextTic...

  • cocos creator RichText组件类似Label.

    我用的是2.4.1版本 一. Label组件强制刷新的方法 二. RichText组件强制刷新的方法

  • vue 强制刷新组件重新渲染

    问题:子组件渲染的数据是在子组件的函数内处理过,但是父组件将数据更新后,子组件渲染的数据是直接更新的数据,并未触发...

  • vue强制刷新子组件的数据

    一、问题:在父组件里面加载了自定义的子组件,父组件添加数据后,子组件的数据怎么跟着刷新??? 二、解决方法: 1、...

网友评论

      本文标题:Vue组件强制刷新的解决方案

      本文链接:https://www.haomeiwen.com/subject/tyclbktx.html