在完成前端开发任务时,想在子组件
在子组件中简单通过this.$router.replace({path})并不能达到目的。几经查阅,寻得几种可以刷新页面的方法,并了解到父子组件通信。便想到一解决思路。
子组件成功完成请求后,转递信息给父组件,准确一点说,子组件完成相关操作后通过this.$emit(),调用父组件的方法,在父组件的方法中完成刷新操作。
重要的部分:
我所采用的刷新页面的方法是:
created () { this.$router.replace({path: '/index'}) }
{ 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 () { 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') } }) }