vue 父刷新子_父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法...
场景:
我实际用到的是这样的,我父组件引用子组件related,父组件调用获取页面详情的方法,更新了state值related,子组件根据该related来渲染相关新闻内容,但是页面打开的时候总是先加载子组件,子组件在渲染的时候还没有获取到更新之后的related值,即使在子组件中watch该值的变化依然不能渲染出来子组件的相关新闻内容。
我的解决办法:
父组件像子组件传值,当父组件执行了获取页面详情的方法之后,state值related更新,然后传给子组件,子组件再进行渲染,可以正常获取到。
父组件代码:
{{ title }}
{{pubName}}
{{authorName}}
{{createAt|formatTime}}
关注
import { Toast } from 'mint-ui';
import {mapState} from 'vuex'
import Related from './Related.vue'
import moment from 'moment';
export default{
name:"NewsDetails",
components:{
Related,
},
data(){
return {
id:this.$route.params.id,
topicType:"news",
contentStatus:false,
curHeight:0,
bodyHeight:5000,
hotCommentScrollTop:0
}
},
created(){
this.id=this.$route.params.id;
this.fetchData();
moment.locale('zh-cn');
},
mounted(){
setTimeout(()=>{
this.contentToggle();
},500)
},
watch: {
'$route'(to,from){
this.id=this.$route.params.id;
this.fetchData();
}
},
computed: {
...mapState({
title: state => state.newsDetails.title,
authorName: state => state.newsDetails.authorName,
pubNews: state => state.newsDetails.pubNews,
pubName: state => state.newsDetails.pubName,
editorName: state => state.newsDetails.editorName,
createAt: state => state.newsDetails.createAt,
content: state => state.newsDetails.content,
myFavourite: state => state.newsDetails.myFavourite,
related: state => state.newsDetails.related,
})
},
filters:{
formatTime(time){
return moment(time).fromNow();
},
},
methods:{
fetchData(){
this.$store.dispatch('getDetails',this.id);
},
follow(){
Toast('登录后进行关注');
this.$router.push("/login");
},
contentToggle(){
this.curHeight=this.$refs.bodyFont.offsetHeight;
if(parseFloat(this.curHeight)>parseFloat(this.bodyHeight)){
this.contentStatus=true;
}else{
this.contentStatus=false;
}
// this.hotCommentScrollTop=this.$refs.hotComment.height;
console.log(this.hotCommentScrollTop);
},
}
}
子组件related.vue
{{item.title}}
打开唐人家
置顶
阅读 {{item.read}}
{{item.createAt|formatTime}}
import {mapActions, mapState, mapGetters} from 'vuex'
import moment from 'moment'
export default{
data(){
return {
lists: [],
id:this.$route.params.id,
}
},
props:{
related:Array //重点是这里
},
created(){
moment.locale('zh-cn');
},
/*computed: {
...mapState({
related: state => state.newsDetails.related,
})
},*/
filters:{
formatTime(time){
return moment(time).fromNow();
},
},
methods:{
},
watch: {
related (val) {
this.lists = val;
},
'$route'(to,from){
this.id=this.$route.params.id
}
}
}
效果如图:
总结
以上所述是小编给大家介绍的父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
vue 父刷新子_父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法...相关推荐
- Easyui中使用jquery或js动态添加元素时出现的样式失效的解决方法
Easyui中使用jquery或js动态添加元素时出现的样式失效的解决方法 在添加完之后,可以使用 $.parser.parse();这个方法进行处理: (1) 对整个页面重新渲染: $.parser ...
- 在xp中不能查看或更改文件夹的“只读”属性或“系统”属性解决方法
在xp中不能查看或更改文件夹的"只读"属性或"系统"属性解决方法 症状 您可能会遇到下列任一症状: • 不能使用文件夹的"属性"对话框查看 ...
- VS2010中,无法嵌入互操作类型“……”,请改用适用的接口的解决方法
原文:VS2010中,无法嵌入互操作类型"--",请改用适用的接口的解决方法 1.提示:在VS2010,在引用COM组件的时候,出现了无法嵌入互操作类型"--" ...
- 在小皮面板中使用cmd进入mysql命令,包含mysql错误unknown variable ‘secure_file_priv‘解决方法(超详细)
在小皮面板中使用cmd进入mysql命令,包含mysql错误unknown variable 'secure_file_priv'解决方法(超详细) 先按win+r键打开运行对话框,输入cmd,进入: ...
- confluence中org.apache.tomcat.util.net.NioEndpoint$Acceptor.run Socket accept failed的解决方法
confluence中org.apache.tomcat.util.net.NioEndpoint$Acceptor.run Socket accept failed的解决方法 参考文章: (1)co ...
- oracle xe 乱码_关于Linux操作系统下终端乱码的完美解决方法
初入linux的程序员们,经常会受到乱码的问候.可谓"始乱终弃".因为乱码,并且最终放弃了linux的不在少数.好吧,言归正传,先看看各类乱码是怎么形成的. 中文字符乱码 这种情况 ...
- JavaScript中的window.close在FireFox和Chrome上不能正常动作的解决方法
原文:JavaScript中的window.close在FireFox和Chrome上不能正常动作的解决方法 JS中关闭窗口的方法window.close()在IE上能够正常动作,而在FireFox和 ...
- mysql+concat函数问题_Mysql5.7中使用group concat函数数据被截断的问题完美解决方法...
前天在生产环境中遇到一个问题:使用 GROUP_CONCAT函数select出来的数据被截断了,最长长度不超过1024字节,开始还以为是navicat客户端自身对字段长度做了限制的问题.后面故意重新I ...
- Cent OS 6/7 中通过yum安装软件时提示cannot find a valid baseurl...的解决方法
Cent OS 6/7 中通过yum安装软件时提示cannot find a valid baseurl...的解决方法 参考文章: (1)Cent OS 6/7 中通过yum安装软件时提示canno ...
最新文章
- 传道、授业、解惑:俞士纶院长参加数据科学研究院第五届“院长接待日”
- SAP 物料在启用序列号管理或者不启用序列号管理之间快速切换?
- hikaridatasource 加密后登陆不上_python测试开发django42.auth模块登陆认证
- C#验证子网掩码的正确性
- OpenCV 3.0又一个革命性版本,它会带来哪些改变
- 程序开发天团必备单品,稳定输出还加持千元商务礼限时送!
- C语言源代码展示:常用转换函数实现原理
- 话里话外:企业ERP实施的前前后后(二)
- spring简易学习笔记三(AOP)
- 四叉树 gis java_GIS中四叉树索引及其分类介绍 | 麻辣GIS
- orgChart实现多重树状图结构
- ipa文件如何下载安装OR如何设置IPA文件下载链接
- C语言函数中的px是什么,C语言学习知识程序设计试卷及其规范标准答案
- 高项_第十二章项目采购管理
- 有效预防xss_预防XSS攻击的一些方法整理
- log日志:如何设置log级别、打印字体的颜色
- 如何用Nuxt.js构建项目,SSR官网项目搭建流程
- windows上配置深度学习(李沐-动手学深度学习)
- 编写程序,求出几何形状(长方形、正方形、圆形)的周长和面积
- html手机上怎么修改,怎么用手机修改路由器密码?
热门文章
- Python使用redis的消息队列
- mysql数据库前端缓存_MySQL数据库性能优化--缓存参数优化
- 币对交易所_比特币向1万4大涨,OK交易所的比特币为什么反而贬值7折?
- 【黑马程序员 C++教程从0到1入门编程】【笔记6】C++核心编程(文件操作)
- Linux进程地址空间与进程内存布局详解,内核空间与用户空间
- python mpl_toolkits.mplot3d.axes3d.Axes3D()使用 介绍
- Tensorflow实现自动编码器
- TCP/IP面试常问合集,JavaWeb内容及HTTP协议
- 幽暗统领 树的重心 牛客白月赛44
- K Co-prime Permutation 构造,gcd,互质(2020.12.南京)