Vue通过父子组件通信刷新页面
2021/6/11 10:50:55
本文主要是介绍Vue通过父子组件通信刷新页面,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
问题
在完成前端开发任务时,想在子组件
尝试
在子组件中简单通过this.$router.replace({path})并不能达到目的。几经查阅,寻得几种可以刷新页面的方法,并了解到父子组件通信。便想到一解决思路。
思路
子组件成功完成请求后,转递信息给父组件,准确一点说,子组件完成相关操作后通过this.$emit(),调用父组件的方法,在父组件的方法中完成刷新操作。
重要的部分:
- 如何刷新页面?
- 如何当子组件完成操作时,父组件响应?
我所采用的刷新页面的方法是:
- 新建一个空的组键,为该组件编写created()
created () { this.$router.replace({path: '/index'}) }
- 在index.js中,为该组件进行注册
{ path: '/empty', name: 'empty', component: empty }
- 在父组件中,编写一方法跳转到该组件
refresh () { this.$router.replace({path: '/empty'}) }
以上便是刷新页面的简单方法
接下来便是父子组件通信
我所采用的是通过vm.$emit()达到通信目的
参考链接:
https://cn.vuejs.org/v2/api/#vm-emit
https://www.cnblogs.com/sweeneys/p/10201458.html
- 父组件中监听子组件所调用的方法
<UserDynamic v-on:post="refresh"></UserDynamic>
解析:
- post为子组件中的方法,其中完成post请求
- refresh为父组件的方法,响应监听时间
- 子组件内的post()使用this.$emit()
post () { const token = localStorage.getItem('token') this.$axios.post('/dynamic/', { content: this.userDynamic.content }, { headers: { 'Authorization': token } }) .then(response => { if (response.data.code === 200) { this.$emit('post') } }) }
这篇关于Vue通过父子组件通信刷新页面的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Vue CLI多环境配置学习:从入门到实践
- 2024-11-24Vue CLI多环境配置学习:新手入门教程
- 2024-11-24Vue CLI学习:初学者指南
- 2024-11-24Vue CLI学习:从入门到上手的简单教程
- 2024-11-24Vue3+Vite学习:从零开始的前端开发之旅
- 2024-11-24Vue3阿里系UI组件学习入门教程
- 2024-11-24Vue3的阿里系UI组件学习入门指南
- 2024-11-24Vue3公共组件学习:新手入门教程
- 2024-11-24Vue3公共组件学习入门指南
- 2024-11-24vue3核心功能响应式变量学习