VUE-解决切换页面后,子组件通过props获取的父组件数据不同步的问题
2019-07-24 13:58
1601 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/the_renaissance/article/details/97127707
Vue貌似很多场景,页面刷新后数据丢失。此文介绍路由子组件获取父组件的属性在刷新页面后丢失的解决办法。
-
场景描述
笔者最近的项目中,有一组页面数据需要互相共享,于是在路由父组件中通过props属性传递数据到各个子组,保证了各个页面的一致性。A子组件即A子页面修改了数据后,在页面切换后,B子组件获取的数据还是旧的初始属性,不能保证各个子页面数据的一致性。
// 子组件通过prop获取数据 <router-view :casedetail="casedetail" :scheduleInfo="scheduleInfo" :basicInfoForm="basicInfoForm" :marformationParamForm="marformationParamForm" :positionValue="positionValue" :deviceParamForm="deviceParamForm" :installParamForm="installParamForm" :structLengthForm="structLengthForm" :targetMarformationParamForm="targetMarformationParamForm" :correctTimeForm="correctTimeForm" :precriptionList="precriptionList" :formValueHasChanged="formValueHasChanged" :cjxFormValueHasChanged="cjxFormValueHasChanged" :allDisabledFlag="allDisabledFlag" :scheduleLoading="scheduleLoading" @postFormData="setFormData" @closeCurStep="closeCurStep" @prevStepFn="prevStepFn" @jumpToNextStep="jumpToNextStep" @saveAsFn="saveAsFn" ref="childStep" />
-
解决办法
想到的解决办法就是,在A子页面修改了数据后,将数据同步到父组件,在切换页面后,B子页面获取到的是最新的数据。
在子组件中定义方法postFormData,在basicInfoForm数据改变时,可以将数据通过父组件监听的postFormData方法传递给父组件
//向父亲组件传递参数 postFormData: function(){ this.$emit('postFormData', 'basicInfoForm',this.basicInfoForm); },
在父组件中定义
// 在路由子组件中监听postFormData方法 @postFormData="setFormData" //设置子组件传递的数据 setFormData: function(formName,formData){ var that = this; if(formName == 'basicInfoForm'){ that.basicInfoForm = formData; } }
-
总结
最终实现的效果就是A子页面修改了数据后,切换到B页面后,是新的数据。本文简单的介绍了这个场景的解决方法,其实也是父子组件之间数据传递解决办法。
相关文章推荐
- vue 后台数据获取与组件渲染、页面刷新数据消失的问题小结
- vue中父子组件通过props传递数据,页面加载完毕,父组件数据更新,子组件不动态更新的解决方案
- [vue.js]解决子组件无法获取父组件store中的值的问题
- Vuejs刷新页面子组件数据丢失问题的一点笔记
- 解决使用Vue.js显示数据的时,页面闪现原始代码的问题
- 解决IE11 vue +webpack 项目中数据更新后页面没有刷新的问题
- 日常问题记录--JSP页面中通过<s:property value="#parameters.userName[0]>获取URL参数中文时为乱码的解决办法
- 解决Fragment每次切换时数据重新获取问题
- [转]解决Servlet获取页面数据乱码的问题
- 关于获取页面元素的二进制数据并再次上传的问题的解决
- 通过接口解决多线程下的数据同步问题
- Vue.js 通过jQuery ajax获取数据实现更新后重新渲染页面
- 解决vue不相关组件之前数据传输问题
- 解决从JSP页面获取后台数据中文乱码问题?
- 解决element-ui中el-menu组件作为vue-router模式在刷新页面后default-active属性与当前路由页面不一致问题的方法
- 解决Vue 通过下表修改数组,页面不渲染的问题
- vue遇到过的坑(父组件向输入框组件传值进去,然后子组件利用传进来的数据进行数据绑定的问题与解决方法)
- 【Android】解决RadioButton+FragmentPagerAdapter+Fragment切换页面数据加载的问题
- 解决vue修改数据页面不重新渲染问题
- X5用组件windowRunner打开后 再点数据打开页面获取值不会刷新 的解决办法