亲宝软件园·资讯

展开

provide与inject刷新Vue页面

SpringSir 人气:1

方法1:直接调用函数

将整个页面重载, 以下两种都可以

1.window.location.reload()

2.this.$router.go()

方法2:采用provide / inject(静刷新)

在高阶函数中声明一个reload刷新函数

<template>
  <div id="app" v-if="show"></div>
</template>
<script>
export default {
  // 控制显示/隐藏, 实现刷新
  data () {
    return {
      show: true
    }
  },
  // 把刷新的方法传给低阶组件
  provide () {
    return {
      reload: this.reload
    }
  },
  methods: {
    // 高阶组件定义刷新方法
    reload () {
      this.bol = false
      this.$nextTick(() => {
        this.bol = true
      })
    }
  }
}
</script>

在低阶组件中使用刷新函数

<template>
  <div></div>
</template>
<script>
export default {
  inject: ['reload'],
  methods: {
    // 低阶组件, 刷新
    fun () {
      this.reload()
    }
  }
}
</script>

优势比较

加载全部内容

相关教程
猜你喜欢
用户评论