300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > VUE3中实现点击按钮刷新页面

VUE3中实现点击按钮刷新页面

时间:2019-08-06 08:33:47

相关推荐

VUE3中实现点击按钮刷新页面

这里要先了解一下provide和inject

provide :向子组件以及子孙组件传递数据。接收两个参数,第一个参数是 key,即数据的名称;第二个参数为 value,即数据的值

inject :接收父组件或祖先组件传递过来的数据。接收一个参数 key,即父组件或祖先组件传递的数据名称

下面我们通过依赖注入(provide和inject)实现自定义页面刷新事件

原理:给app.vue中router-view绑定v-if事件,在函数中控制v-if的值在短时间内由true到false再到true,从而使页面达到刷新效果

推荐指数:满天星

app.vue文件:

<template><router-view v-if="state.showRouter"/></template><script>import {reactive, nextTick, provide } from 'vue'export default {setup(){const state = reactive({showRouter: true})//刷新事件function reload(){state.showRouter = false//nextTick:在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。nextTick( () =>{state.showRouter = true})}// 向子组件以及子孙组件传递名为reload的函数,第一个参数自定义,第二个参数代表上面定义的reload()方法provide('reload',reload)return {state }}}</script>

需要用到刷新事件的子组件:

<template><button @click="refRoad">刷新页面</button></template><script>import {inject } from 'vue'export default {setup(){const reload = inject('reload') //注入刷新事件,这里括号中的参数要对应上前面provide中的第一个参数function refRoad(){reload()}return {refRoad }}}</script>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。