Javascript 监视更改并使用日期对象更新格式化视图
我想在这几天里做一次导航。所以我需要两个按钮“上一天”和“下一天”来更改格式化日期Javascript 监视更改并使用日期对象更新格式化视图,javascript,vuejs2,Javascript,Vuejs2,我想在这几天里做一次导航。所以我需要两个按钮“上一天”和“下一天”来更改格式化日期 [ <<PREV ] DD-MM-YYY (weekday) [ NEXT >> ] .container{ 垫面:2rem; } .栏目{ 文本对齐:居中; } 编号:{{number} 上 数据:{day} 计算:{{dateformatted} 方法:{{showFormattedDate(day)} 监视:{{dayFormatted} 下一个 这实际上是我第一次使用
[ <<PREV ] DD-MM-YYY (weekday) [ NEXT >> ]
.container{
垫面:2rem;
}
.栏目{
文本对齐:居中;
}
编号:{{number}
上
数据:
{day}
计算:
{{dateformatted}
方法:
{{showFormattedDate(day)}
监视:
{{dayFormatted}
下一个
这实际上是我第一次使用Vue
我添加到您的DEP中是因为它可以方便地按照您想要的方式格式化日期
我想我已经把它简化为一个相当简单的解决方案。当我将日期存储为矩对象时(即使使用this.$set(this,'date',this.date.add(1,'day')
或添加一个deep watcher),我确实遇到了一个问题,Vue没有对日期更改做出反应,因此我放弃了这种方法,而是将日期存储为unix时间戳(历元秒),这很好:
let app=new Vue({
el:“应用程序”,
数据:{
日期:moment().startOf('day').unix()
},
方法:{
日期字符串:函数(){
return moment.unix(this.date).format('DD-MM-YYYY(dddddd)');
},
上一个:函数(){
this.date=moment.unix(this.date).subtract(1,'day').unix();
},
下一步:函数(){
this.date=moment.unix(this.date).add(1,'day').unix();
}
}
});
.container{
垫面:2rem;
}
.栏目{
文本对齐:居中;
}
上
{{dateString()}}
下一个
它不起作用,beucase Vue不监视对象内部的突变()
这两行改变了对象day
,但Vue看不到更改,因为对对象的引用(this.day
)保持不变:
this.day.setDate(this.day.getDate() - 1);
this.day.setDate(this.day.getDate() + 1);
如果您将其更改为分配新对象,它将起作用,因为现在对this.day
的引用已更改,并且Vue注意到更改的值:
this.day = new Date(this.day.setDate(this.day.getDate() - 1));
this.day = new Date(this.day.setDate(this.day.getDate() + 1));
带有正确工作代码的钢笔。谢谢您的回复。这个项目具有教育意义,所以这就是我要找的。